找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4669|回复: 0
收起左侧

单片机用Itoa函数

[复制链接]
ID:404797 发表于 2019-12-26 22:21 | 显示全部楼层 |阅读模式
        用过计算机C语言的师兄都应该用过Itoa这个函数,可以很方便的把整数转化为字符串。在单片机开发中,也很需要这个函数,但是单片机开发用的C语言并没有提供Itoa函数,当需要显示整数时很不方便,本人编了一个简易的Itoa函数,可以很方便将整数按指定进制转换为字符串,方便整数显示。供师兄们参考。
  1. #include<reg52.h>
  2. //========================================
  3. unsigned char *Itoa(unsigned int ni,int dd)//ni 要转换的整数;dd进制;
  4. {char i=0,j=0,temp[16],outstr[16];
  5. unsigned int n,num=ni;
  6. while(num>=dd)
  7. {n=num%dd;
  8.   if(n>9)temp[i]=n+0x37;else temp[i]=n+0x30;
  9.   num=num/dd;
  10.   i++;
  11.   }
  12.   n=num;if(n>9)temp[i]=n+0x37;else temp[i]=n+0x30;
  13.   j=0;
  14.   for(;i>=0;i--){outstr[j]=temp[i];j++;}
  15.   outstr[j]=0;
  16.   return outstr;
  17.   }
  18. //============================================
  19. void Uart_init()
  20. {TMOD=0x22;
  21. SCON=0x50;
  22. TH1=0xfd;
  23. TL1=0xfd;
  24. EA=1;
  25. ES=1;
  26. TR1=1;
  27. }
  28. //---------------------------------------------------------------
  29. void Sentstr(unsigned char *cp)
  30. {char i=0;
  31. while(*cp)
  32.   {SBUF=*cp;
  33.    cp++;
  34.    while(!TI);
  35.    TI=0;
  36.    }
  37. }
  38. //----------------------------------------------------------------
  39. void UartPro()interrupt 4{;}
  40. //=============================================
  41. main()
  42. {Uart_init();
  43. Sentstr("\r253B=");Sentstr(Itoa(253,2));
  44. Sentstr("\r253O=");Sentstr(Itoa(253,8));
  45. Sentstr("\r253D=");Sentstr(Itoa(253,10));
  46. Sentstr("\r253H=");Sentstr(Itoa(253,16));
  47. while(1);
  48. }
复制代码
程序运行仿真截图如下:
itoa.JPG

全部资料51hei下载地址:
Itoa.zip (64.82 KB, 下载次数: 26)

评分

参与人数 2黑币 +60 收起 理由
x84s09t28 + 10 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表