找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5869|回复: 2
打印 上一主题 下一主题
收起左侧

单片机将一个32位长整型变量dat转为字符串函数,比如把1234转为"1234"

[复制链接]
跳转到指定楼层
楼主
ID:109770 发表于 2016-3-21 01:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个c语言写的函数可以用在单片机系统里面:
  1. /******************************************************************
  2. 功能:将一个32位长整型变量dat转为字符串,比如把1234转为"1234"
  3. 参数:dat:待转的long型的变量
  4.       str:指向字符数组的指针,转换后的字节串放在其中   
  5. 返回:转换后的字符串长度                                
  6. ******************************************************************/
  7. #if defined Send_Num||defined Send_StrNum
  8. unsigned char Long_Str(long dat,unsigned char *str) // 长整型数转换为字符串,返回值为转换后的字符串长度
  9. {
  10.         signed char i=0;
  11.         unsigned char len = 0;
  12.         unsigned char buf[11];           // 长整数最大值4294967295,转ASCII码后占用10+1=11字节
  13.         if (dat < 0)               // 如果为负数,首先取绝对值,并添加负号
  14.         {
  15.                 dat = -dat;
  16.                 *str++ = '-';
  17.                 len++;
  18.         }
  19.         do
  20.         {                               // 低位在前高位在后顺序排列
  21.                 buf[i++] = dat % 10+0x30;        // C语言中数组下标固定从0开始
  22.                 dat /= 10;
  23.         } while (dat > 0);
  24.     len += i;                 // i最后的值就是有效字符的个数
  25.     while (i-- > 0)           // 高位在前低位在后顺序排列
  26.     {
  27.         *str++ = buf[i] ;
  28.     }     
  29.         *str = 0;                 // 添加字符串结束符方便使用KEIL自带的字符串处理函数处理
  30.         return len;               // 返回字符串长度
  31. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:137379 发表于 2016-8-23 12:03 | 只看该作者
看不懂啊 能写个例子看看吗
回复

使用道具 举报

板凳
ID:497224 发表于 2020-3-2 09:54 | 只看该作者
很好,有用!值得学习。。。。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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