《计算机组成原理》BCD码 8421编码原理剖析

简介: BCD码1. BCD码的作用

image.png

BCD码

1. BCD码的作用

2. BCD码的转换原理

3. 8421编码

3.1 8421编码的权重划分

3.2 8421编码的加法运算

3.3 8461编码的加6修正

1. BCD码的作用

       首先问大家一个问题:计算机是如何把二进制转换成十进制的?


       我们平时生活中常用的是十进制,即0 1 2 3 4 5 6 7 8 9,我们使用电脑运算时,会输入十进制的数字,电脑则返回十进制的运算结果。


       可实际上,电脑并不能运算十进制,那电脑是怎么运算的呢?


       答案是转换为二进制。


       当电脑收到我们输入的「十进制」之后,会先把十进制「转换」为二进制,对「二进制」进行运算,再将运算的结果转换为十进制,返回给我们。


       那问题又来了:计算机是如何将二进制和十进制进行转换的呢?


       答案是BCD码


2. BCD码的转换原理

       「BCD码」使用 4 位二进制来表示 1 位十进制,即使用 4 个位来存储一个十进制的值,使二进制和十进制之间的转换以快捷的进行。


       比如 使用4位二进制 0000 表示 十进制 0


       使用4位二进制 0001 表示 十进制 1


3. 8421编码

       「8421码」是最基本也是最常用的的一种BCD编码,由4位二进制组成,各位的权值分别是8、4、2、1,8421码的名字也是由此而来。


3.1 8421编码的权重划分

       「权重」即一位元素的重要程度,比如,4位二进制 0001 表示 十进制 1


       第一个位的二进制是0,权重为8,所代表的值就是 8 * 0 = 0


       第二个位的二进制是0,权重为4,所代表的值就是4 * 0 = 0


       第三个位的二进制是0,权重为2,所代表的值就是2 * 0 = 0


       第四个位的二进制是1,权重为1,所代表的值就是1 * 1 = 1


       那么4位二进制 0001 所代表的十进制就是 0 + 0 + 0 + 1 = 1,即十进制 1


8421码中二进制和十进制的对应关系如下:

image.png

3.2 8421编码的加法运算

       当我们输入 1 + 2 以后,计算机是怎么计算的呢?


       首先,计算机会将十进制位对应的二进制交给算术逻辑单元(ALU)


        1 对应的二进制是 0001


        2 对应的二进制是 0010


       算术逻辑单元收到这两个值以后,就会执行加操作,就像我们小学的加法运算,如下图

image.png

       这两个二进制相加的结果是 0011 ,对应的十进制就是 3 ,即 1 + 2 = 3


3.3 8461编码的加6修正

       这时候又有一个问题,二进制对应的十进制只有10个,也就是只能表示0~9这几个值,如果相加的结果超过了这个范围该怎么表示呢?


       BCD码给出了一个解决方法:「加6修正」,即超过0~9范围的值加6(0110)


       比如 9 + 8,


       计算机首先会将十进制对应的二进制交给算术逻辑单元(ALU)


        9 对应的二进制是 1001


        8 对应的二进制是 1000


       算术逻辑单元收到这两个值以后,就会执行加操作,就像我们小学的加法运算,如下图


image.png

       相加的结果是 10001 ,这个二进制结果跟0~9范围内任何一个十进制都不匹配,即超出了这个范围,这时候电脑会对结果加上6(0110),如下图

image.png


       由于BCD码以4位保存一个值,对于不满4位的值,会在左侧补充 0 直至4位。


       结果中左侧二进制 0001 表示 1


       右侧二进制 0111 表示 7


       即 8 + 9 = 17


相关文章
|
10月前
|
存储
【计算机组成原理】计算机的性能指标、数据的表示和运算、BCD码和余3码
计算机组成原理(二) 计算机的性能指标: 存储器的性能指标:
137 0
|
程序员 知识图谱
电影《孤注一掷》感触、计算机底层二进制与十进制的转换
看完《孤注一掷》后,我内心激荡起一股深刻的情感。今天,我希望与大家分享这部电影的观后感,同时还想简要介绍一下电影中涉及的秘密线索666关于二进制和十进制转换的原理。另外,也推荐一本我认为写得较为出色的计算机书籍——《计算机底层的秘密》。这段经历充满启示,引导我们一同深入探索其中蕴含的智慧。
835 0
电影《孤注一掷》感触、计算机底层二进制与十进制的转换
|
3月前
|
存储 编解码 算法
计算机编码
计算机编码
|
22天前
|
存储
计算机中二进制与数字逻辑
【7月更文挑战第26天】
8 2
|
3月前
|
存储 算法 量子技术
计算机为什么采用二进制
计算机为什么采用二进制
134 0
|
8月前
【408计算机组成原理】—BCD码(三)
【408计算机组成原理】—BCD码(三)
|
存储 C语言
【实验向】问题:假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示:
【实验向】问题:假设计算机A和计算机B通信,计算机A给计算机B发送一串16个字节的二进制字节串,以数组形式表示:
132 0
|
存储
为什么计算机中的每个字符都是以二进制形式存储的?底层原理是什么?
为什么计算机中的每个字符都是以二进制形式存储的?底层原理是什么?
120 0
408计算机组成原理学习笔记——数制和编码
408计算机组成原理学习笔记——数制和编码
193 1
408计算机组成原理学习笔记——数制和编码