关于bcd转hex

[复制链接]
3111|3
 楼主| CHUANDAOXY 发表于 2007-3-16 10:25 | 显示全部楼层 |阅读模式
#include<reg51.h>
#include<stdio.h>


unsigned int BCDTOHEX(unsigned int bcd_data)
{  
   unsigned  char temp;

   temp=(( bcd_data>>8)*100)|((bcd_data>>4)*10)|(bcd_data&0x0f);

   return temp;
   }

  



  void main (void)
   {
   unsigned char  c;

   unsigned int  b;
    b= 1001;

   c = BCDTOHEX(b);
   }
    编译没问题,执行就出错?

   问题在那呢

    
wsl_5631 发表于 2007-3-16 10:34 | 显示全部楼层

BCD码

b= 1001; 
b 是BCD码???
computer00 发表于 2007-3-16 12:29 | 显示全部楼层

改成这样:

temp=(((bcd_data>>12)&0xF)*1000)+(((bcd_data>>8)&0xF)*100)+(((bcd_data>>4)&0xF)*10)+(bcd_data&0x0f);





b = 0x1001;

c = BCDTOHEX(b);
xwj 发表于 2007-3-16 13:34 | 显示全部楼层

是啊,LZ都没屏蔽无关位:-)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

856

主题

1046

帖子

4

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