搜索
bottom↓
回复: 11

请问如何把数值转化成字符串啊??

[复制链接]

出0入0汤圆

发表于 2008-7-2 21:38:12 | 显示全部楼层 |阅读模式
有一个unsigned int 的变量,想把它转化成字符串,把每个字符放到数组里面,有什么最好的方法??

出0入0汤圆

 楼主| 发表于 2008-7-2 23:18:41 | 显示全部楼层
没有人知道吗???感觉这个挺常用的。。。

出0入54汤圆

发表于 2008-7-2 23:36:50 | 显示全部楼层
我的做法是
如果是数据+‘0’
如果是字母加-a+'a'

以上对一位显示来说的。。
比如要显示123
百位显示
1+‘0’
十位
2+‘0’
。。。。。。。

出0入22汤圆

发表于 2008-7-2 23:40:47 | 显示全部楼层
itoa函数。

出0入0汤圆

 楼主| 发表于 2008-7-3 07:07:13 | 显示全部楼层
to  lusson :但是你首先要知道百位是1,十位是2。。。。。。这里才是关键啊??

to zxq6 小马哈:itoa 在Keil里能用吗??这个函数不是C++里面的吗??要包含什么头文件??

出0入0汤圆

发表于 2008-7-3 08:17:16 | 显示全部楼层
int转为数组没必要那么麻烦,用union最简单。

出0入4汤圆

发表于 2008-7-3 08:40:46 | 显示全部楼层
1. 内存大的用sprintf( )
2. 中等的用itoa()
3. 小的用 X/1000, X/100, X/10..,之后转2楼
4. 更小的用汇编, 速度很快.

出0入0汤圆

 楼主| 发表于 2008-7-3 09:48:23 | 显示全部楼层
哦,明白了,但是那些函数要包含什么头文件呢??

出0入0汤圆

发表于 2008-7-3 10:16:34 | 显示全部楼层
试试我这个,无符号的……有符号的,先判断符号,如果是负数则乘负1后再调用这个

/********************************************************************
函数功能:将整数转按十进制字符串发送。
入口参数:x:待显示的整数。
返    回:无。
备    注:无。
********************************************************************/
void PrintLongInt(uint32 x)
{
int8 i;
uint8 display_buffer[10];

for(i=9;i>=0;i--)
  {
   display_buffer='0'+x%10;
   x/=10;
  }
for(i=0;i<9;i++)
  {
   if(display_buffer!='0')break;
  }
for(;i<10;i++)UartPutChar(display_buffer);
}
////////////////////////End of function//////////////////////////////

出0入22汤圆

发表于 2008-7-3 14:49:30 | 显示全部楼层
itoa应该是在stdlib.h里面。

出0入0汤圆

 楼主| 发表于 2008-7-3 15:35:35 | 显示全部楼层
好的,谢谢各位,圈圈的那个代码挺精炼的,不知大家都是不是通常用圈圈的那种思路呢。。。。。

出0入0汤圆

发表于 2010-4-21 14:06:28 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 21:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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