登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

博客相思 永远也不要停下学习的脚步

坚信通过自己的努力能够改变自己 古来酒解千愁 独今遗世空杯.

 
 
 

日志

 
 

什么是BCD码  

2009-06-26 00:56:19|  分类: &IT&(理论篇) |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

定义:BCD码:使用4位二进制数表示1位十进制数,常称为二进制编码的十进制数。

  即BCD代码。Binary-Coded Decimal?,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

  由于十进制数共有0、1、2、……、9十个数码,因此,至少需要4位二进制码来表示1位十进制数。4位二进制码共有2^4=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/(16-10)!约等于2.9乘以10的10次方种方案。常用的BCD代码列于末。

  常用BCD编码方式

  最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在中国大陆称之为“8421码”。除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:

  有权BCD码,如:8421(最常用)、2421、5421…

  无权BCD码,如:余3码、格雷码…

  以下为三种常见的BCD编码的比较。

  十进数 8421-BCD码 余3-BCD码 2421-A码

  (M10) D C B A C3 C2 C1 C0 a3 a2 a1 a0

  0 0 0 0 0 0 0 1 1 0 0 0 0

  1 0 0 0 1 0 1 0 0 0 0 0 1

  2 0 0 1 0 0 1 0 1 0 0 1 0

  3 0 0 1 1 0 1 1 0 0 0 1 1

  4 0 1 0 0 0 1 1 1 0 1 0 0

  5 0 1 0 1 1 0 0 0 0 1 0 1

  6 0 1 1 0 1 0 0 1 0 1 1 0

  7 0 1 1 1 1 0 1 0 0 1 1 1

  8 1 0 0 0 1 0 1 1 1 1 1 0

  9 1 0 0 1 1 1 0 0 1 1 1 1

  常用BCD码

  十进制数 8421码 5421码 2421码 余3码 余3循环码

  0 0000 0000 0000 0011 0010

  1 0001 0001 0001 0100 0110

  2 0010 0010 0010 0101 0111

  3 0011 0011 0011 0110 0101

  4 0100 0100 0100 0111 0100

  5 0101 1000 1011 1000 1100

  6 0110 1001 1100 1001 1101

  7 0111 1010 1101 1010 1111

  8 1000 1011 1110 1011 1110

  9 1001 1100 1111 1100 1010

  -----------------------

  特点:

  8421编码直观,好理解。

  5421码和2421码中大于5的数字都是高位为1,5以下的高位为0。

  余3码是8421码加上3,有上溢出和下溢出的空间。

  格雷码相邻2个数有三位相同,只有一位不同。

  ————————————————————

  什么是BCD码2006-3-19 13:24:45

  bcd码也叫8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,着十个数每个数都有自己的8421码:

  0=0000

  1=0001

  2=0010

  3=0011

  4=0100

  5=0101

  6=0110

  7=0111

  8=1000

  9=1001

  举个例子:

  321的8421码就是

  3 2 1

  0011 0010 0001

  原因:0011=8x0+4x0+1x2+1x1=3 0010=8x0+4x0+2x1+1x0=2. 0001=8x0+4x0+2x0+1x1=1

  具体:

  bcd码是十位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000

  举例:

  某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为<U>__C</U>__。

  A.00000001 00000011 00000111 B. 00000011 00000001 00000111

  C.00000010 00000011 00000100 D. 00000011 00000001 00001001

  解:(1)11101010转换为十进制:234

  (2)按百位、十位和个位的顺序表示,应为<U>__C</U>__。

  附注:压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8.

                       在PLC数据转换中经常接触到BCD码,那么什么是BCD码,什么是压缩的BCD码?二者又有什么区别呢?

  在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。它具有二进制数的形式以满足数字系统的要求,又具有十进制的特点(只有十种有效状态)。在某些情况下,计算机也可以对这种形式的数直接进行运算。常见的BCD码表示有以下几种。

8421BCD编码

  这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最有效高位开始到最低有效位)8,4,2,1。

  例 写出十进数563.97D对应的8421BCD码。

    563.97D=0101 0110 0011 . 1001 01118421BCD

  例 写出8421BCD码1101001.010118421BCD对应的十进制数。

    1101001.010118421BCD=0110 1001 . 0101 10008421BCD=69.58D

  在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。四位二进制数的其余六个编码1010,1011,1100,1101,1110,1111不是有效编码。

2421BCD编码

  2421BCD码也是一种有权码,其从高位到低位的权分别为2,4,2,1,其也可以用四位二进制数来表示一位十进制数。其编码规则如下表。

余3码

  余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。

常见BCD编码表

十进制数 8421BCD码 2421BCD码 余3码

0         0000       0000      0011

1         0001       0001      0100

2         0010       0010      0101

3         0011       0011      0110

4         0100       0100      0111

5         0101       1011      1000

6         0110       1100      1001

7         0111       1101      1010

8         1000       1110      1011

9         1001       1111      1100

10      0001,0000 0001,0000 0100,0011

非压缩式和压缩式:

BCD又分为两种,非压缩式和压缩式两种。

前面这种81秒存成 “08,01” 是非紧密式,而紧密式会存成 “81h”

(直接以十六进制储存)。

非压缩的BCD码只有低四位有效,而压缩的BCD码则将高四位也用上了,就是说一个字节有两个BCD码。

BCD是用0和1表示十进制,如0000表示0,0001表示1,0010表示2,举例子1234表示成0001001000110100,而压缩的bcd是用00表示0,01表示1,10表示2,110表示3等,但压缩的BCD并不固定,可看情况而定,所要的就是用最少的位数表示尽可能多的数

  评论这张
 
阅读(150)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018