找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16640|回复: 6
打印 上一主题 下一主题
收起左侧

BCD码简介

[复制链接]
跳转到指定楼层
楼主
ID:109770 发表于 2016-3-20 22:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简介
4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码,即BCD代码。Binary-Coded Decimal‎,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制(定义:其中各十进制数位都分别由二进制数字来表示的二进制编码记法。)“代码"。
定义
  BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行
 由于十进制数共有0、1、2、……、9十个数码,因此,至少需要4位二进制码来表示1位十进制数。4位二进制码共有2^4=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/10!*(16-10)!约等于8008方种方案。常用的BCD代码列于末。
常用BCD编码方式及特点
最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在中国大陆称之为“8421码”(日常所说的BCD码大都是指8421BCD码形式)。除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:

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

  无权BCD码,如:余3码、格雷码
常用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码  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
BCD码的运算法则

  BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进

  制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。

  修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数 9),不需要修

  正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如

  果相加时,本位产生了进位,也需加 6 进行修正。这样做的原因是,机器按二进制相加,

  所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进

  制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,

  都要加 6 进行修正。下面举例说明。

  【例 1.3】 需要修正 BCD码运算值的举例。

  (1) 计算 5+8

  解:(1) 将 5 和 8 以 8421 BCD输入机器,则运算如下:

      0 1 0 1

  +) 1 0 0 0

      1 1 0 1 结果大于 9

  +) 0 1 1 0 (加 6) 修正

   1 0 0 1 1。
00010011 : 0001=1,0011=3   
13 的 BCD码 结果是 0011,即十进制数 3,还产生了进位。5+8=13,结论正确。
(2)计算8+8
 解: (2)将8以8421 BCD输入机器,则运算如下:

       1 0 0 0

  +)1 0 0 0

     1 0 0 0 0 结果大于9

  +)0 1 1 0 (加6)修正

     1 0 1 1 0
00010110:0001=1,0110=6
16的BCD码

  结果是0110,即十进制的6,而且产生进位。8+8=16,结论正确。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:135253 发表于 2016-8-3 10:40 | 只看该作者
用途:数码管显示
回复

使用道具 举报

板凳
ID:167345 发表于 2017-3-1 11:08 来自触屏版 | 只看该作者
怎么收藏
回复

使用道具 举报

地板
ID:202876 发表于 2017-5-20 15:24 | 只看该作者
学习一下了
回复

使用道具 举报

5#
ID:522953 发表于 2019-10-25 06:07 | 只看该作者
解说详细。赞
回复

使用道具 举报

6#
ID:301968 发表于 2019-10-30 09:20 | 只看该作者
说的很好
回复

使用道具 举报

7#
ID:781556 发表于 2020-10-23 17:59 | 只看该作者
多谢分享非常适合初学者。
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表