home *** CD-ROM | disk | FTP | other *** search
- char * _i64toa(__int64 v,char *str,int r)
- {
- int i;
- char digits[76],*pstr = str,result[256],*presult;
-
- if (r < 2) {
- *str++ = '1';
- *str = 0;
- return pstr;
- }
- else if (r > 70) {
- *str = 0;
- return str;
- }
- for (i=0; i<10;i++) {
- digits[i] = i+'0';
- }
- for (i=10;i<42;i++) {
- digits[i] = i+'A';
- }
- for(i=42;i<74;i++) {
- digits[i] = i+'a';
- }
- digits[74] = 0;
- presult = &result[0];
- if (r == 10 && v < 0)
- *str++ = '-';
- if (v < 0)
- v = -v;
- do {
- i = (v % r);
- *presult++ = digits[i];
- v = (v/r);
- } while (v);
- *presult-- = 0;
- while (presult != &result[0]) {
- *str++ = *presult--;
- }
- *str++ = *presult;
- *str = 0;
- return pstr;
- }
-
-