47 #if !defined(int64_t2str) && !defined(HAVE_LONGLONG2STR)
49 char _dig_vec_upper[] =
50 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
56 char *int64_t2str(int64_t val,
char *dst,
int radix)
60 uint64_t uval= (uint64_t) val;
64 if (radix < -36 || radix > -2)
return (
char*) 0;
68 uval = (uint64_t)0 - uval;
74 if (radix > 36 || radix < 2)
return (
char*) 0;
82 char* p = &buffer[
sizeof(buffer)-1];
85 while (uval > (uint64_t) LONG_MAX)
87 uint64_t quo= uval/(uint32_t) radix;
88 uint32_t rem= (uint32_t) (uval- quo* (uint32_t) radix);
89 *--p = _dig_vec_upper[rem];
92 long_val= (long) uval;
95 long quo= long_val/radix;
96 *--p = _dig_vec_upper[(
unsigned char) (long_val - quo*radix)];
99 while ((*dst++ = *p++) != 0) ;
105 #ifndef int64_t10_to_str
106 char *int64_t10_to_str(int64_t val,
char *dst,
int radix)
110 uint64_t uval= (uint64_t) val;
118 uval = (uint64_t)0 - uval;
128 char* p = &buffer[
sizeof(buffer)-1];
131 while (uval > (uint64_t) LONG_MAX)
133 uint64_t quo= uval/(uint32_t) 10;
134 uint32_t rem= (uint32_t) (uval- quo* (uint32_t) 10);
135 *--p = _dig_vec_upper[rem];
138 long_val= (long) uval;
139 while (long_val != 0)
141 long quo= long_val/10;
142 *--p = _dig_vec_upper[(
unsigned char) (long_val - quo*10)];
145 while ((*dst++ = *p++) != 0) ;