发表一个自己用的HEX转BCD流程图

[复制链接]
3708|4
 楼主| ybtthaxiq 发表于 2008-10-24 10:27 | 显示全部楼层 |阅读模式
原理:
  假设需要转换的hex码为hex(0x456789123),对应转换后的单元为bcd;
  t,k 为固定常数;
转换部分:
  for(i = 0;;i++)
  { 
   hex= hex/ t * k+ hex; 
   bcd += (hex& 0xf) << 4*i ;   ->   取最低位
   hex >> 4;
   if(hex ==0)
      break;
   }
   bcd = 18630611235;
xwj 发表于 2008-10-24 10:50 | 显示全部楼层

晕,这是多少位的计算?

t、k分别为多少?
ejack 发表于 2008-10-24 12:30 | 显示全部楼层
ejack 发表于 2008-10-24 12:31 | 显示全部楼层

hex声明成什么类型?这么老长?

long long ago型???
 楼主| ybtthaxiq 发表于 2008-10-24 12:50 | 显示全部楼层

):

只要编译器允许,uint64  uint32都可以转换的
t = 0x0a  k = 0x6  
hex >> 4;
应该是改为
hex = hex >> 4;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

29

帖子

0

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