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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何将64位整数转字符串相关的知识,希望对你有一定的参考价值。

最好有现成的库函数

64位整数是指现实中64位的十进制的整数还是什么?如果是这样的,就是把现实中64位十进制的整数(因为在计算机中用二进制存储)转换为64个ASCII码显示在屏幕上。0的ASCII码是30,1的ASCII码是31,以此类推。先把整数(除一次之后就是所得的商)多次除以10取余(整数%10),把所得的余数+30赋值给char类型的变量,然后从尾至头连成字符串(或每得到一次余数就加到已定义的字符串中),就可以输出了(代码懒得写了) 参考技术A 楼主你好!
可以使用itoa()函数!具体参照百度百科!它给的例子!很好懂的!
http://baike.baidu.com/view/982195.htm
希望我的回答对你有帮助!
参考技术B long long int a = 1234;
char s[256];

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

本回答被提问者采纳
参考技术C 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上用这个打印开机到当前的时间戳了.

C语言字符转换ASCII码

有没有哪位高手能详细说明下,不用PRINTF这个函数,重点是要用自己的写的函数能完成这个功能吗。
谢谢高手给予详解,本人菜鸟,请给出代码。

#include<stdio.h>

voidmain()


unsignedchara;

printf("enterchar:");

scanf("%C",&a);

printf("ascii=%d",a);//强制转化为ascii码


扩展资料:

在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

参考资料来源:百度百科-ASCII

参考技术A

1、首先需要打开自己的终端窗口,如下图所示。

2、接下来需要利用vim创建一个c程序,如下图所示。

3、接下来需要编写自己所需要的程序,如下图所示。

4、最后在自己的程序中就可以看到字符转成ASCII了,如下图所示。

参考技术B //函 数 名:CharToHex()
//功能描述:把ASCII字符转换为16进制
//函数说明:
//调用函数:
//全局变量:
//输 入:ASCII字符
//返 回:16进制
/////////////////////////////////////////////////////////////////////
unsigned char CharToHex(unsigned char bHex)
if((bHex>=0)&&(bHex<=9))
bHex += 0x30;
else if((bHex>=10)&&(bHex<=15))//大写字母
bHex += 0x37;
else bHex = 0xff;
return bHex;

/////////////////////////////////////////////////////////////////////
//函 数 名:HexToChar()
//功能描述:把16进制转换为ASCII字符
//函数说明:
//调用函数:
//全局变量:
//输 入:16进制
//返 回:ASCII字符
/////////////////////////////////////////////////////////////////////
unsigned char HexToChar(unsigned char bChar)
if((bChar>=0x30)&&(bChar<=0x39))
bChar -= 0x30;
else if((bChar>=0x41)&&(bChar<=0x46))//大写字母
bChar -= 0x37;
else if((bChar>=0x61)&&(bChar<=0x66))//小写字母
bChar -= 0x57;
else bChar = 0xff;
return bChar;本回答被提问者采纳
参考技术C C语言中,字符和其ASCII码是等价的,比如'A'这个字符和单字节整数65是等价的.
比如char c='A';int a=c;的话,a就是65
参考技术D ASCII字符值范围是0x00到0x7f。因为有不可见和键盘不好拍的字符。所以你可用整型数输入。
unsigned
char
a[100],b[100];
unsigned
char
x,y,z;
scanf("%d",&a[i]);
if
(a[i]
>
0x7f
||
a[i]
<
0)
重输;
加减运算
就用算数表达式。例如
y
=
a[1]+a[2];
b[2]
=
a[1]
+
a[2]
-
a[3];
unsigned
char
就是8bit无符号整数。
加减运算后很可能超界,即大于0x7f或小于0。
加减运算后的字符很可能是不可打印字符,或“看不见”的字符。
所以你的题目有问题。

以上是关于C语言如何将64位整数转字符串的主要内容,如果未能解决你的问题,请参考以下文章

c语言如何实现16进制字符串转换为 base64

c语言中如何将字符串转化成整数型并输出?

c语言中如何将字符串转化成整数型并输出?

c语言中如何将字符串转化成整数型并输出?

C语言如何把11位16进制字符串转成16进制数?

C语言如何把11位16进制字符串转成16进制数?