| 123456789101112131415161718192021222324252627282930313233343536373839 | /* * Copyright (C) 2000 Manuel Novoa III * * Note: buf is a pointer to the END of the buffer passed. * Call like this: *     char buf[SIZE], *p; *     p = __lltostr(buf + sizeof(buf) - 1, ...) * For long longs of 64 bits, appropriate buffer sizes are: *     base =  2      66  = 1 (possible -) sign + 64 digits + 1 nul *     base = 10      21  = 1 (possible -) sign + 19 digits + 1 nul *     base = 16      18  = 1 (possible -) sign + 16 hex digits + 1 nul */extern char *__ulltostr(char *buf, unsigned long long uval, int base, 						int uppercase);char *__lltostr(char *buf, long long val, int base, int uppercase){	unsigned long long uval;	char *pos;    int negative;	negative = 0;    if (val < 0) {		negative = 1;		uval = ((unsigned long long)(-(1+val))) + 1;    } else {		uval = val;	}    pos = __ulltostr(buf, uval, base, uppercase);    if (pos && negative) {		*--pos = '-';    }    return pos;}
 |