求助:如何将16进制转化为10进制存储起来啊!(如20H转为32H)我用的单片机没有乘法指令
同上 问题点数:20、回复次数:8Top
1 楼DawnWoo()回复于 2004-09-04 12:46:56 得分 0
1,你用的单片机没乘法指令?我表示怀疑!
2,其实数据的存储都是二进制的,只不过我们处理的时候需要转换。
3,我想做表格比较好Top
2 楼ldarmy(你的武器已破碎)回复于 2004-09-04 12:58:54 得分 5
连续相减
如20h,先减10,减了3次,十位就为3,剩下的就是各位数字
其他的也一样,可以将减数设大点Top
3 楼bitanfuyun(碧潭浮云)回复于 2004-09-04 13:14:41 得分 0
用乘以16h就行了Top
4 楼W32API()回复于 2004-09-04 17:18:58 得分 10
怀疑什么? EM78153(6) 系列就没有乘法指令
我要转宽度 16bit 的数据成 十进制数据,你要多大的表?
EM78P153(6) 的代码空间只有 1KTop
5 楼zhangze(喆)回复于 2004-09-04 22:05:02 得分 5
这是我想出来的算法,对于十位用了最多10次循环,百位没有使用循环是因为对于一个字节的内容,2次循环稍显影响速度,所以使用了一个if判断。我在想有没有另外简单一点的,这个算法有点笨拙。
char char100;
char char10;
char char1;
byte hex;
if(hex>99)
char100=((hex>>7)+1)+0x30;//+0x30是为了显示成字符
hex=hex&7f;
byte temphex=hex;
for(int i=0;;i++)
{
temphex=temphex-0xa;
if(temphex<0xa)
break;
}
char10=i+0x30;
char1=temphex+0x30;Top
6 楼zhangze(喆)回复于 2004-09-04 22:06:02 得分 0
for(int i=0;;i++)应该改为int i=0;for(;;i++)Top
7 楼W32API()回复于 2004-09-06 08:35:55 得分 0
查找原来的帖子,我有贴过用移位来做乘除法运算的代码片段Top
8 楼qb90(感觉feel)回复于 2004-09-06 09:27:15 得分 0
谢谢大家 :)Top




