长整型十六进制数据转换成十进制 C51如何高效率实现?

[复制链接]
7061|2
 楼主| newnetren 发表于 2007-9-28 00:07 | 显示全部楼层 |阅读模式
比如 0x0074cbb1 (7654321)
要分别取出 个位 十位 千位 万位 ......

void LongIntTOAsc(unsigned long int a1,unsigned char *pDes)
{

*pDes++  = '0';
*pDes++ = HexToAsc(a1/1000000);
a1 = a1%1000000;
*pDes++ = HexToAsc(a1/100000);
a1 = a1%100000;
*pDes++ = HexToAsc(a1/10000);
a1 = a1%10000;
*pDes++ = HexToAsc(a1/1000);
a1 = a1%1000;
*pDes++ = HexToAsc(a1/100);
a1 = a1%100;
*pDes++ = HexToAsc(a1/10);
*pDes = HexToAsc(a1%10);
}
main
{
unsigned long int k1;
unsigned char s1[9];
k1 = 0x0074cbb1 ;
LongIntTOAsc(k1,s1);
//s1 = "07654321"
}

这种算法太占资源了,还有没有更好的算**

coldra 发表于 2007-9-28 05:00 | 显示全部楼层

写个循环函数

ayb_ice 发表于 2007-9-28 07:13 | 显示全部楼层

这也很是很正常的用法....

最高效就是用汇编写...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

1

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部