51单片机中C语言int能转换为字符串类型吗?怎么转换?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机中C语言int能转换为字符串类型吗?怎么转换?相关的知识,希望对你有一定的参考价值。

因为是C51, 所以不能用 VC++里面的C语言代码 eg: itoa, 也不要用打印的 eg: sprintf
为什么? 因为C51的内存太小 ,如果这样用非常占用资源. 下面的朋友回答就显得不够专业了.

所以, 一般我们是这样自己写代码使用实现的: 字符串改为数组的形式
unsigned char dat[5];
dat[4]=Num/10000+'0';

dat[3]=Num%10000/1000+'0';
dat[2]=Num%1000/100+'0';
dat[1]=Num%100/10+'0';
dat[0]=Num%10+'0'
参考技术A 使用编译器带的库,一般都有sprintf这个函数,sprintf(str, "%d", i); code会增加的有些多本回答被提问者采纳 参考技术B 用 itoa函数可以参考
/* itoa example */
#include <stdio.h>
#include <stdlib.h>

int main ()

int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10); //转化为十进制
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16); //转化为十六进制
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2); //转化为二进制
printf ("binary: %s\n",buffer);
return 0;
参考技术C unsigned int a;
unsigned char b;

b=(unsigned char)a;
参考技术D 你 char 一下不就好了。就是要注意值

C语言实现unsigned char 转换unsigned int?

希望能得到您自己亲身证实了的答案,谢谢 不借用其他函数转换 程序如下: void main(void) unsigned char a=0x11,b=0xFF; unsigned int c=0; c=(a<<8)|b; printf(">>:%x\n",c); 这样能实现吗? 我用在51单片机中

参考技术A 本质上char类型和int其实是同一种类型。。。都代表了整数型大小,转换的话,在前面加上强制转换符就好了,如int()之类的

以上是关于51单片机中C语言int能转换为字符串类型吗?怎么转换?的主要内容,如果未能解决你的问题,请参考以下文章

c语言 所有类型转换函数

51单片机中断 C语言?请教!

C语言中int和char之间的转化问题

单片机C语言里怎么定义BYTE型的数组?

C语言 int转char

C++ 中怎么把string类型转换为float型或int型? C++处理字符串的方法似乎比较麻烦