《计算机组成原理》BCD码 8421编码原理剖析
「作者主页」:士别三日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编码原理剖析相关推荐
- 计算机组成原理偶校验编码设计,计算机组成原理校验码生成电路的设计.doc
计算机组成原理校验码生成电路的设计 编 号:学 号: 9 课 程 设 计 教 学 院计算机学院课程名称计算机组成原理课程设计题 目校验码生成电路的设计专 业计算机科学与技术班 级计科一班姓 名陈建辉同 ...
- 计算机阵列除法器原理,计算机组成原理原码阵列除法器.doc
计算机组成原理原码阵列除法器 计算机组成原理 专周报告 成都电子机械高等专科学校计算机工程系 ` 目 录 一.项目名称1 二.实验目的1 三.不恢复余数的阵列除法器介绍1 四.逻辑流程图及原理3 算法 ...
- BCD码优先编码设计
作业名称: BCD码优先编码设计 一.作业目的 1.了解了74148优先编码器的工作原理和优先级的设计. 2.掌握集成优先编码功能和应用. 3.熟悉和运用Multisim对常用电路的仿真和设计. 二. ...
- BCD码-8421码、5421码、2421码、余3码
一.BCD码的转换原理 「BCD码」使用 4 位二进制来表示 1 位十进制,即使用 4 个位来存储一个十进制的值,使二进制和十进制之间的转换以快捷的进行. 比如 使用4位二进制 0000 表示 十进制 ...
- 【计算机组成原理】码距怎么计算
[计算机组成原理]码距怎么计算 计算码距的一种方法,就是对两个位串进行异或(xor)运算,并计算出异或运算结果中1的个数. 例如110和011这两个位串,对它们进行异或运算,其结果是: 110⊕011 ...
- 计算机组成原理r3寄存器,计算机组成原理实验报告-寄存器的原理及操作
<计算机组成原理实验报告-寄存器的原理及操作>由会员分享,可在线阅读,更多相关<计算机组成原理实验报告-寄存器的原理及操作(10页珍藏版)>请在装配图网上搜索. 1.成绩:实 ...
- 【赠书福利】掘金爆火小册同名《Spring Boot源码解读与原理剖析》正式出书了!...
关注我们丨文末赠书 承载着作者的厚望,掘金爆火小册同名读物<Spring Boot源码解读与原理剖析>正式出书! 本书前身是掘金社区销量TOP的小册--<Spring Boot源码解 ...
- 超流水线计算机原理,6计算机组成原理第6章流水线原理.ppt
文档介绍: 第6章流水线原理及其§1重叠方式通常提高指令执行速度的途径有如下三种:提高处理机的工作主频.采用更好的算法和设计更好的功能部件.多条指令并行执行,称为指令级并行技术.狼畜痔隶嘿拾冈候裸腺绘 ...
- 计算机组成原理中流水线的极,6计算机组成原理第6章流水线原理.ppt
文档介绍: 第6章流水线原理及其§1重叠方式通常提高指令执行速度的途径有如下三种:提高处理机的工作主频.采用更好的算法和设计更好的功能部件.多条指令并行执行,称为指令级并行技术.辛腆拴泵蛇势哗耀投搏却 ...
最新文章
- pyhton3 适配器模式编写
- xlwt+xlrd配合使用修改excel表格
- php self this static,PHP 中 self、static、$this 的区别和后期静态绑定详解
- c语言double字母,C语言double和float 实例分析
- php中把美国时间转为北京时间的自定义
- VS2022+.NET6+C#10,.NET开发起飞
- C++基础--STL基本容器string,vector,list,deque,map
- 关于AOP /IOC / DI
- 安森美半导体获取IBM车用雷达毫米波技术
- Python基础笔记(四)切片、列表生成式、迭代
- cogs 1811. [NOIP2014]螺旋矩阵
- 无约束最优化(三) 拟Newton法
- winform获取appconfig配置文件得配置
- 全球铁矿石行业供给分析与投资可行性分析报告2022年版
- 微信小程序-map地图标签的初级使用, 拥有图标,气泡,地图本身无法缩放移动需要点击跳转第三方地图平台
- 第一章 .NET体系结构
- E. Thematic Contests(离散化+排序+二分)Codeforces Round #521 (Div. 3)
- Python lambda表达式用法
- 离散数学知识点总结(6):自然推理系统;13 个推理规则; 如何使用推理规则
- C++中std::setw()的用法
热门文章
- python--openpyxl模块使用, 对excel表格的操作
- 2018 ACM-ICPC World Finals - Beijing F.Go with the Flow
- 简单的图论问题【湖南省赛】
- Mac下 javac java 进行编译和运行含有包路径及引入jar包的类
- codeforces test #12 C. Subsequences 树状数组统计
- 第11章 享元模式(Flyweight Pattern)
- C#多线程强制退出程序
- inno setup读取XML文件
- HK-2000多功能数据采集仪支持命令说明
- 理解_RBAC基础概念_Spring Security OAuth2.0认证授权---springcloud工作笔记113