8421BCD码加法的修正证明
8421BCD码加法的修正证明
正数表示的两种定义
对于一个正数 n n n我们可以将其以两种形式表示
公式一: n = ∑ i = 0 m A i × 1 0 i , ∀ i ∈ [ 0 , m ] , A i ∈ [ 0 , 9 ] n=\sum_{i=0}^{m}A_i\times 10^i,\forall i\in[0,m],A_i\in[0,9] n=∑i=0mAi×10i,∀i∈[0,m],Ai∈[0,9]
公式二: n = ∑ i = 0 m A i × 1 0 i , ∀ i ∈ [ 0 , m ] , A i ∈ [ 0 , 18 ] n=\sum_{i=0}^{m}A_i\times 10^i,\forall i\in[0,m],A_i\in[0,18] n=∑i=0mAi×10i,∀i∈[0,m],Ai∈[0,18]
修正证明
现设 a , b ≥ 0 a,b\geq0 a,b≥0,用公式一分别表示 a , b a,b a,b得
a = ∑ i = 0 m A i × 1 0 i , ∀ i ∈ [ 0 , m ] , A i ∈ [ 0 , 9 ] a=\sum_{i=0}^{m}A_i\times 10^i,\forall i\in[0,m],A_i\in[0,9] a=∑i=0mAi×10i,∀i∈[0,m],Ai∈[0,9]
b = ∑ i = 0 m B i × 1 0 i , ∀ i ∈ [ 0 , m ] , B i ∈ [ 0 , 9 ] b=\sum_{i=0}^{m}B_i\times 10^i,\forall i\in[0,m],B_i\in[0,9] b=∑i=0mBi×10i,∀i∈[0,m],Bi∈[0,9]
用公式二表示 a , b a,b a,b的和,设 c = a + b = ∑ i = 0 m C i ⋅ 1 0 i , ∀ i ∈ [ 0 , m ] , C i ∈ [ 0 , 18 ] c=a+b=\sum_{i=0}^{m}C_i\cdot 10^i,\forall i\in[0,m],C_i\in[0,18] c=a+b=∑i=0mCi⋅10i,∀i∈[0,m],Ci∈[0,18]
我们将公式二的 C i C_i Ci进行修正使得其在保证值不变的前提下变成公式一的过程称为进位;
在 8421 B C D 8421BCD 8421BCD码下按照二进制加法的规则,我们从低位开始考虑,在考虑当前第 i i i位 C i C_i Ci有三种情况,
一、 C i < = 9 C_i<=9 Ci<=9时,符合公式一,不需要修正;
二、 9 < C i < 16 9<C_i<16 9<Ci<16时,在二进制加法下第 i i i位不会向 i + 1 i+1 i+1位进位,故其不符合公式一。按照最直接的方法进行修正,我们可以将 C i C_i Ci减去四位二进制数 ( 1010 ) 2 (1010)_2 (1010)2(也就是十进制下的 ( 10 ) 10 (10)_{10} (10)10),然后将 C i + 1 C_{i+1} Ci+1加上1,但是在四位二进制数下减去某个数就等于加上这个数的补数,即加上 2 4 − 10 = 6 2^4-10=6 24−10=6,而此时由于有 C i > 9 C_i>9 Ci>9可以得到 C i + 6 > 15 C_i+6>15 Ci+6>15,在二进制下 C i + 6 C_i+6 Ci+6必定会向第 i + 1 i+1 i+1位进位1,即我们可以将修正操作等效为在二进制意义下将 C i C_i Ci代表的四位二进制数加上 ( 0110 ) 2 (0110)_2 (0110)2进行修正;
三、 16 ≤ C i ≤ 18 16\leq C_i \leq 18 16≤Ci≤18时,在二进制下第 i + 1 i+1 i+1位增加了1,但是第 i i i位却减少了16,整体的真实值减少了 16 × 1 0 i − 1 0 i + 1 = 6 × 1 0 i 16\times 10^i-10^{i+1}=6\times 10^i 16×10i−10i+1=6×10i,所以我们可以直接对第 i i i位的 C i C_i Ci加上 ( 0110 ) 2 (0110)_2 (0110)2(也就是十进制下的6)来加以修正;
综述结论
由两个数的 8421 B C D 8421BCD 8421BCD码在二进制意义下相加得到的结果,需要经过如下的修正才能得到两个数相加的正确结果;
我们按照从低位到高位的顺序;对于当前第 i i i位(也就是二进制下的4为) C i C_i Ci:
(1) C i < 10 C_i<10 Ci<10,则无需修正;
(2) C i > = 10 C_i>=10 Ci>=10 或者 C i C_i Ci向第 i + 1 i+1 i+1位有过进位,则须给 C i C_i Ci加上 ( 0110 ) 2 (0110)_2 (0110)2,加以修正;
8421BCD码加法的修正证明相关推荐
- 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法
8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法 1. 有权码和无权码的包括 2.各种码值的介绍 8421码的简介 8421码又称为BCD码,是十进代码中最常 ...
- 关于8421BCD码与余三码
BCD码其实就是4bit二进制数映射0~9十个十进制数. 余三码存在的必要性: 8421BCD码总共十六个,因只映射0~9,所以有六个二进制数是冗余的.则8421BCD码做加法运算时候会出问题,因为十 ...
- 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)
目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...
- 一位8421BCD码转5421码,2421码,余3码组合电路(附思路)
一. 题目分析 (1) 输入码A3A2A1A0:8421BCD码. (2) 输出码B3B2B1B0:余3.5421和2421BCD码. (3) 输入BCD码型选择由一只单刀单掷开关控制(注意:开关用来 ...
- 数字时钟计数器(内含模60计数器以及8421BCD码计数器设计代码)
目录 前言 模60计数器 verilog设计代码如下: ISE综合 模24的8421BCD码计数器 原理 verilog HDL代码 测试文件 仿真波形 数字时钟计数器 verilog HDL代码 测 ...
- 8421码到5421码的转换_余三码8421bcd码转换电路设计的接线方法
接线图: 用4位二进制并行加法器实现8421码到余3码的转换,只需从4位二进制并行加法器的输入端A4.A3.A2和A1输入8421码,而从输入端B4.B3.B2和B1输入二进制数0011,进位输入端C ...
- BCD码加法的步骤及其原因
当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正: 如果相加之和在 1010 到1111(即十六进制数 0AH-0FH)之间bai,则需加 6 进行修正: 如果相加时,本位产 ...
- 二进制转8421bcd码_中山CVI转CVBS芯视音科技原装
中山CVI转CVBS芯视音科技原装 深圳市芯视音科技有限公司,是一家专注于音视频转换方案和IC研发的实力公司.涵盖视频展台.工业相机.视频矩阵.视频转换.游戏设备周边方案,车载安防周边等领域,总部设在 ...
- 用UpdateResource修改EXE文件图标的多源码(已修正) 注:转帖请包函作者信息.(作者:菜新)
微软官网UpdateResource 其它参考信息: https://msdn.microsoft.com/zh-cn/library/ms648008.aspx#_win32_Updating_Re ...
最新文章
- python多进程应用场景_python使用多进程的实例详解
- 安装Python第三方库的三个方法
- java qq音乐接口 api,QQ音乐解析API接口更新:支持HQ,ape,flac无损音质,缓存功能
- 折腾Java设计模式之建造者模式
- 谈谈To B业务的难点
- synchronized 原理知多少
- 架构设计:生产者/消费者模式 第3页:队列缓冲区
- Visual Studio怎么使用中文帮助文档
- 大叔手记(12):我的一次面试经历(谈大叔如何应对面试官)
- 新买的笔记本电脑怎么分盘_别再吐槽游戏本越玩越慢:笔记本电脑降速揭秘+散热维护小贴士...
- DataGridView
- Atitit 提升开发效率 通道化驱动化数据操作与查询 目录 1. xiaoguo	1 1.1. Atitit mybatis 简化开发与提升开发效率法	1 2. Code	1 3. ref	4
- 主流数据库管理系统介绍
- Command ‘docker‘ not found, but can be installed with:
- Python-有道翻译
- python制作mcmod_[周边教程]MinecraftMOD制作_从入门到精通
- vivo手机计算机怎么开语音,vivo怎么打开语音助手
- 如何使用 VSCode 开发 RT-Thread Smart 应用程序
- Python(2)变量声明、变量类型
- 【java】中文转拼音遇到的奇葩事件