C语言如何将64位整数转字符串

最好有现成的库函数
2024-11-13 04:01:14
推荐回答(4个)
回答(1):

64位整数是指现实中64位的十进制的整数还是什么?如果是这样的,就是把现实中64位十进制的整数(因为在计算机中用二进制存储)转换为64个ASCII码显示在屏幕上。0的ASCII码是30,1的ASCII码是31,以此类推。先把整数(除一次之后就是所得的商)多次除以10取余(整数%10),把所得的余数+30赋值给char类型的变量,然后从尾至头连成字符串(或每得到一次余数就加到已定义的字符串中),就可以输出了(代码懒得写了)

回答(2):

楼主你好!
可以使用itoa()函数!具体参照百度百科!它给的例子!很好懂的!
http://baike.baidu.com/view/982195.htm
希望我的回答对你有帮助!

回答(3):

long long int a = 1234;
char s[256];

sprintf(s, "%lld", a);

回答(4):

char* i64toa(int64_t num,char* str,int radix)
{/*索引表*/
char index[]="0123456789ABCDEF";
unsigned long long int unum;/*中间变量*/
int i=0,j,k;
/*确定unum的值*/
if(radix==10&&num<0)/*十进制负数*/
{
unum=(unsigned)-num;
str[i++]='-';
}
else unum=(unsigned)num;/*其他情况*/
/*转换*/
do{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
/*逆序*/
if(str[0]=='-')
k=1;/*十进制负数*/
else
k=0;

for(j=k;j<=(i-1)/2;j++)
{
char temp;
temp=str[j];
str[j]=str[i-1+k-j];
str[i-1+k-j]=temp;
}
return str;
}
我已经在ESP8266的RTOS上用这个打印开机到当前的时间戳了.