BCD码与十六进制的区别? 点击:0 | 回复:12



雪世界

    
  • 精华:10帖
  • 求助:0帖
  • 帖子:517帖 | 4412回
  • 年度积分:0
  • 历史总积分:20175
  • 注册:2005年8月04日
发表于:2007-07-07 06:24:00
楼主
BCD码与十六进制的区别?



老工控

  • 精华:1帖
  • 求助:0帖
  • 帖子:84帖 | 4477回
  • 年度积分:0
  • 历史总积分:22541
  • 注册:2003年6月25日
发表于:2007-07-07 11:44:00
1楼
举个例子:比如对于一个数:0000 0010 0011 1111
其16进制就是:23F
如果转换为BCD码,因为BCD是没有A~F的,则每一位乘以其位权为:
1x 1(2的0次方)+
1x 2(2的1次方)+
1x 4(2的2次方)+
1x 8(2的3次方)+
1x16(2的4次方)+
1x32(2的5次方)+
0x64(2的6次方)+
0x128(2的7次方)+
0x256(2的8次方)+
1x512(2的9次方)+
0x1024(2的10次方)+
0x2048(2的11次方)+
0x4096(2的12次方)+
0x8192(2的13次方)+
0x16384(2的14次方)+
0x32768(2的15次方)=575
所以转换后的BCD码是0000 0101 0111 0101(0575)
OK?

HRBJYH

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 884回
  • 年度积分:0
  • 历史总积分:1069
  • 注册:2007年6月30日
发表于:2007-07-07 12:38:00
2楼
说的对



三脚猫

  • 精华:0帖
  • 求助:0帖
  • 帖子:190帖 | 1598回
  • 年度积分:0
  • 历史总积分:1093
  • 注册:2004年7月08日
发表于:2007-07-07 13:00:00
3楼
#1A00     只能当16进,不能当BCD
#0100     表面上看即可当BCD数,也可当十六进数(或二进)
当BCB码时   为十进100
当16进码时  为十进256

        

chengshien

  • 精华:11帖
  • 求助:0帖
  • 帖子:59帖 | 155回
  • 年度积分:0
  • 历史总积分:307
  • 注册:2005年3月31日
发表于:2007-07-07 13:06:00
4楼
对。其实都是表示数字,只是进制的不同。bcd是二进制,而我们平时用的是十进制。

老工控

  • 精华:1帖
  • 求助:0帖
  • 帖子:84帖 | 4477回
  • 年度积分:0
  • 历史总积分:22541
  • 注册:2003年6月25日
发表于:2007-07-07 13:07:00
5楼
楼上正解
对于一个2进制数据,每4位做一个数来讲,
1、如果此数没超过9,既可以认为是BCD码,也可以是16进制数,要在程序中具体分析
2、如果此数超过9,只能是16进制数,当然你可以通过BCD指令转换为BCD码

雪世界

  • 精华:10帖
  • 求助:0帖
  • 帖子:517帖 | 4412回
  • 年度积分:0
  • 历史总积分:20175
  • 注册:2005年8月04日
发表于:2007-07-07 20:57:00
6楼


我可以把BCD码理解十进制吗?

雪世界

  • 精华:10帖
  • 求助:0帖
  • 帖子:517帖 | 4412回
  • 年度积分:0
  • 历史总积分:20175
  • 注册:2005年8月04日
发表于:2007-07-07 20:57:00
7楼


我可以把BCD码理解十进制吗?

老工控

  • 精华:1帖
  • 求助:0帖
  • 帖子:84帖 | 4477回
  • 年度积分:0
  • 历史总积分:22541
  • 注册:2003年6月25日
发表于:2007-07-08 08:18:00
8楼
BCD码是2进制表示十进制的一种方法
即从低位起,每4位代表一个十进制的数(0~9)
即:每4位的位权是10,而不是16(16进制的位权是16、2进制的位权是2)

老工控

  • 精华:1帖
  • 求助:0帖
  • 帖子:84帖 | 4477回
  • 年度积分:0
  • 历史总积分:22541
  • 注册:2003年6月25日
发表于:2007-07-08 08:21:00
9楼
BCD码 
十进制数在键盘输入和打印、显示输出时往往是将各个数字以ASCII码来表示的。但是在计算机内运算时,是以二进制形式进行的。为了便于转换,设计了一些用二进制编码表示的十进制数,称为二—十进制码,即BCD码(Binary?coded?Decimal)。 
BCD码是用四位二进制代码来表示一位十进制数。有多种BCD码:8421码、2421码、余3码、格雷码。 
常用BCD码 
十进制数字 8421码 2421码 余3码 格雷码 
0 0000 0000 0011 0000 
1 0001 0001 0100 0001 
2 0010 0010 0101 0011 
3 0011 0011 0110 0010 
4 0100 0100 0110 0010 
5 0101 0101 1000 1110 
6 0110 0110 1001 1010 
7 0111 0111 1010 1000 
8 1000 1110 1011 1100 
9 1001 1111 1100 0100 
注意:BCD码表示的数形式上像二进制数,但不是真正的二进制数。

老工控

  • 精华:1帖
  • 求助:0帖
  • 帖子:84帖 | 4477回
  • 年度积分:0
  • 历史总积分:22541
  • 注册:2003年6月25日
发表于:2007-07-08 08:24:00
10楼
关于“位权”请参考:
http://zhidao.baidu.com/question/23110468.html

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14399帖 | 54471回
  • 年度积分:0
  • 历史总积分:579
  • 注册:2008年9月08日
发表于:2007-07-08 23:51:00
11楼
     QQ群:42341674
交流平台,欢迎你的加入,参与知识互动.

chp351577

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 156回
  • 年度积分:0
  • 历史总积分:441
  • 注册:2003年10月11日
发表于:2007-07-09 05:57:00
12楼
这是两个概念,BCD是编码的方式,十六进制是一种数制,BCD是固定长度(一个字节或一个字)的十进制表示,你只要说明,也可用十六进制表示.

相关主题

官方公众号

智造工程师