问下多字节16进制转10进制的问题

[复制链接]
3825|8
 楼主| 会流泪的鱼 发表于 2007-10-22 15:17 | 显示全部楼层 |阅读模式
      qudong_huancun[3]=x/1000;
      x=x%1000;
      qudong_huancun[2]=x/100;
      x=x%100;
      qudong_huancun[1]=x/10;
      qudong_huancun[0]=x%10;
这是我用的两字节16进制转10进制的程序,但现在用到long型的

       n_1=98765432;
       i[6]=n_1/1000000;
       i[5]=n_1/10000;
       i[4]=n_1/100;
我就这样的程序就要用到300多个字节,有没有什么方法可以解决??
300多字节太大了啊!!

gjg191 发表于 2007-10-22 16:08 | 显示全部楼层

dd

不明白意思
ayb_ice 发表于 2007-10-22 16:13 | 显示全部楼层

你可以用汇编改小啊。。。

不过也小不了多少。。。
happy_mcu 发表于 2007-10-22 16:24 | 显示全部楼层

试试这个

用这个函数看看

uint x;             // 要转换的16进制数
uchar x_sbuf[4];    //转换后数据缓冲区 x_sbuf[3]为高位
uchar i;
for (i=0; i<4; i++)
{x_sbuf=x%10;
 x=x/10;
}
mohanwei 发表于 2007-10-22 21:33 | 显示全部楼层

用sprintf最简单

#define ch_Buff_Len 20
uchar ch_Buff[ch_Buff_Len];
sprintf(ch_Buff,"%u",ulong_i);
wxlf0429 发表于 2010-3-31 20:58 | 显示全部楼层
16进制转换10进制函数怎么实现啊?
ejack 发表于 2010-4-1 08:07 | 显示全部楼层
呃……LZ的需求是压缩程序代码……LS几位……
john_light 发表于 2010-4-1 09:03 | 显示全部楼层
库函数虽然使用简单,但是它考虑的格式多样,因此代码会增加很多。:P
ejack 发表于 2010-4-1 12:44 | 显示全部楼层
建议自行用除法转减法的方式处理,能够把代码尺寸控制得较小,同时又不损失程序的通用性。
缺点是执行时间与需转换的ulong数值相关,因此不确定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

34

帖子

1

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