「作者主页」:士别三日wyx

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码中二进制和十进制的对应关系如下:

十进制 0 1 2 3 4 5 6 7 8 9
二进制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

3.2 8421编码的加法运算

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

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

1 对应的二进制是 0001

2 对应的二进制是 0010

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

        这两个二进制相加的结果是 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

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


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


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

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

右侧二进制 0111 表示 7

即 8 + 9 = 17

《计算机组成原理》BCD码 8421编码原理剖析相关推荐

  1. 计算机组成原理偶校验编码设计,计算机组成原理校验码生成电路的设计.doc

    计算机组成原理校验码生成电路的设计 编 号:学 号: 9 课 程 设 计 教 学 院计算机学院课程名称计算机组成原理课程设计题 目校验码生成电路的设计专 业计算机科学与技术班 级计科一班姓 名陈建辉同 ...

  2. 计算机阵列除法器原理,计算机组成原理原码阵列除法器.doc

    计算机组成原理原码阵列除法器 计算机组成原理 专周报告 成都电子机械高等专科学校计算机工程系 ` 目 录 一.项目名称1 二.实验目的1 三.不恢复余数的阵列除法器介绍1 四.逻辑流程图及原理3 算法 ...

  3. BCD码优先编码设计

    作业名称: BCD码优先编码设计 一.作业目的 1.了解了74148优先编码器的工作原理和优先级的设计. 2.掌握集成优先编码功能和应用. 3.熟悉和运用Multisim对常用电路的仿真和设计. 二. ...

  4. BCD码-8421码、5421码、2421码、余3码

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

  5. 【计算机组成原理】码距怎么计算

    [计算机组成原理]码距怎么计算 计算码距的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数. 例如110和011这两个位串,对它们进行异或运算,其结果是: 110⊕011 ...

  6. 计算机组成原理r3寄存器,计算机组成原理实验报告-寄存器的原理及操作

    <计算机组成原理实验报告-寄存器的原理及操作>由会员分享,可在线阅读,更多相关<计算机组成原理实验报告-寄存器的原理及操作(10页珍藏版)>请在装配图网上搜索. 1.成绩:实 ...

  7. 【赠书福利】掘金爆火小册同名《Spring Boot源码解读与原理剖析》正式出书了!...

    关注我们丨文末赠书 承载着作者的厚望,掘金爆火小册同名读物<Spring Boot源码解读与原理剖析>正式出书! 本书前身是掘金社区销量TOP的小册--<Spring Boot源码解 ...

  8. 超流水线计算机原理,6计算机组成原理第6章流水线原理.ppt

    文档介绍: 第6章流水线原理及其§1重叠方式通常提高指令执行速度的途径有如下三种:提高处理机的工作主频.采用更好的算法和设计更好的功能部件.多条指令并行执行,称为指令级并行技术.狼畜痔隶嘿拾冈候裸腺绘 ...

  9. 计算机组成原理中流水线的极,6计算机组成原理第6章流水线原理.ppt

    文档介绍: 第6章流水线原理及其§1重叠方式通常提高指令执行速度的途径有如下三种:提高处理机的工作主频.采用更好的算法和设计更好的功能部件.多条指令并行执行,称为指令级并行技术.辛腆拴泵蛇势哗耀投搏却 ...

最新文章

  1. pyhton3 适配器模式编写
  2. xlwt+xlrd配合使用修改excel表格
  3. php self this static,PHP 中 self、static、$this 的区别和后期静态绑定详解
  4. c语言double字母,C语言double和float 实例分析
  5. php中把美国时间转为北京时间的自定义
  6. VS2022+.NET6+C#10,.NET开发起飞
  7. C++基础--STL基本容器string,vector,list,deque,map
  8. 关于AOP /IOC / DI
  9. 安森美半导体获取IBM车用雷达毫米波技术
  10. Python基础笔记(四)切片、列表生成式、迭代
  11. cogs 1811. [NOIP2014]螺旋矩阵
  12. 无约束最优化(三) 拟Newton法
  13. winform获取appconfig配置文件得配置
  14. 全球铁矿石行业供给分析与投资可行性分析报告2022年版
  15. 微信小程序-map地图标签的初级使用, 拥有图标,气泡,地图本身无法缩放移动需要点击跳转第三方地图平台
  16. 第一章 .NET体系结构
  17. E. Thematic Contests(离散化+排序+二分)Codeforces Round #521 (Div. 3)
  18. Python lambda表达式用法
  19. 离散数学知识点总结(6):自然推理系统;13 个推理规则; 如何使用推理规则
  20. C++中std::setw()的用法

热门文章

  1. python--openpyxl模块使用, 对excel表格的操作
  2. 2018 ACM-ICPC World Finals - Beijing F.Go with the Flow
  3. 简单的图论问题【湖南省赛】
  4. Mac下 javac java 进行编译和运行含有包路径及引入jar包的类
  5. codeforces test #12 C. Subsequences 树状数组统计
  6. 第11章 享元模式(Flyweight Pattern)
  7. C#多线程强制退出程序
  8. inno setup读取XML文件
  9. HK-2000多功能数据采集仪支持命令说明
  10. 理解_RBAC基础概念_Spring Security OAuth2.0认证授权---springcloud工作笔记113