您的位置首页百科知识

51单片机如何把整形数据转换成字符串

51单片机如何把整形数据转换成字符串

的有关信息介绍如下:

51单片机如何把整形数据转换成字符串

有时候我们希望将数字以字符串的形式保存起来,方便调试查看,比如通过串口将数字以字符串的形式发送出来比二进制形式更容易理解。通常第一反应可能是字节写一个数字转字符串的子函数,对于有经验的小伙伴这个是so easy,但是再怎么说也得敲好几行代码吧?这里分享一个通过C语言标准库函数将数字转换为字符串的操作,希望对需要的朋友有帮助。

在C语言库函数中,有一个sprintf函数,可以将变量格式化输出到一个缓冲区域,格式化字符串格则与printf类似,这个函数在stdio.h有声明,因此需要包含该h文件,详细测试代码如下:

#include

void main(void){int num = 12345; //定义一个整数char strTemp;//定义一个字符串缓存

sprintf(strTemp, "%d", num);//调用sprintf将num以十进制形式转换为字符串保存在strTemp数组中

while(1){

}}

确认代码录入OK后,点击编译按钮,编译成功!

点击菜单栏的“Debug”->“Start/Stop Debug Session”,或者按快捷组合键“Ctrl + F5”进入调试模式。

在调试模式的右下角有一组窗口,选择其中的“Locals”可以查看变量内容。

在未执行sprintf(strTemp, "%d", num);前,strTemp数组各元素保存的值都是0

执行完sprintf(strTemp, "%d", num);后,可以看到,原来都是0的strTemp数字保存了变量num的值12345,而且是字符形式,这表示我们的操作成功了!

上面的操作将num按十进制形式保存在strTemp中,同样,也可以用十六进制进行保存,比如可以这样写:

sprintf(strHex, "%0x", num);

只需要更改格式化字符串的形式为%0x即可。

代码录入后,重新调试,可以看到对于num=12345,在strHex中保存的是3039。

通过windows自带的计算器可以知道十进制数12345的十六进制就是3039,操作成功!