xref: /original-bsd/sys/stand.att/printn.c (revision 962d13e9)
1 /*
2  * Copyright (c) 1982, 1986 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)printn.c	7.2 (Berkeley) 03/15/90
7  */
8 
9 #include "sys/param.h"
10 
11 /*
12  * Printn prints a number n in base b.
13  * We don't use recursion to avoid deep kernel stacks.
14  */
15 printn(n, b)
16 	u_long n;
17 	int b;
18 {
19 	register char *cp;
20 	char prbuf[11];
21 
22 	if (b == 10 && (int)n < 0) {
23 		putchar('-');
24 		n = (unsigned)(-(int)n);
25 	}
26 	cp = prbuf;
27 	do {
28 		*cp++ = "0123456789abcdef"[n%b];
29 		n /= b;
30 	} while (n);
31 	do
32 		putchar(*--cp);
33 	while (cp > prbuf);
34 }
35