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=0m​Ai​×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=0m​Ai​×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=0m​Ai​×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=0m​Bi​×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=0m​Ci​⋅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码加法的修正证明相关推荐

  1. 8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法

    8421BCD码 5421BCD码 余三码 格雷码 余三循环码之间的关系,转换以及简易方法 1. 有权码和无权码的包括 2.各种码值的介绍 8421码的简介 8421码又称为BCD码,是十进代码中最常 ...

  2. 关于8421BCD码与余三码

    BCD码其实就是4bit二进制数映射0~9十个十进制数. 余三码存在的必要性: 8421BCD码总共十六个,因只映射0~9,所以有六个二进制数是冗余的.则8421BCD码做加法运算时候会出问题,因为十 ...

  3. 模24的8421BCD码计数器(Verilog HDL语言描述)(仿真与综合)

    目录 前言 原理 Verilog HDL程序设计 测试代码 仿真波形图 ISE综合后 RTL Schematic Technology Schematic 前言 本博文用Verilog HDL语言描述 ...

  4. 一位8421BCD码转5421码,2421码,余3码组合电路(附思路)

    一. 题目分析 (1) 输入码A3A2A1A0:8421BCD码. (2) 输出码B3B2B1B0:余3.5421和2421BCD码. (3) 输入BCD码型选择由一只单刀单掷开关控制(注意:开关用来 ...

  5. 数字时钟计数器(内含模60计数器以及8421BCD码计数器设计代码)

    目录 前言 模60计数器 verilog设计代码如下: ISE综合 模24的8421BCD码计数器 原理 verilog HDL代码 测试文件 仿真波形 数字时钟计数器 verilog HDL代码 测 ...

  6. 8421码到5421码的转换_余三码8421bcd码转换电路设计的接线方法

    接线图: 用4位二进制并行加法器实现8421码到余3码的转换,只需从4位二进制并行加法器的输入端A4.A3.A2和A1输入8421码,而从输入端B4.B3.B2和B1输入二进制数0011,进位输入端C ...

  7. BCD码加法的步骤及其原因

    当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正: 如果相加之和在 1010 到1111(即十六进制数 0AH-0FH)之间bai,则需加 6 进行修正: 如果相加时,本位产 ...

  8. 二进制转8421bcd码_中山CVI转CVBS芯视音科技原装

    中山CVI转CVBS芯视音科技原装 深圳市芯视音科技有限公司,是一家专注于音视频转换方案和IC研发的实力公司.涵盖视频展台.工业相机.视频矩阵.视频转换.游戏设备周边方案,车载安防周边等领域,总部设在 ...

  9. 用UpdateResource修改EXE文件图标的多源码(已修正) 注:转帖请包函作者信息.(作者:菜新)

    微软官网UpdateResource 其它参考信息: https://msdn.microsoft.com/zh-cn/library/ms648008.aspx#_win32_Updating_Re ...

最新文章

  1. python多进程应用场景_python使用多进程的实例详解
  2. 安装Python第三方库的三个方法
  3. java qq音乐接口 api,QQ音乐解析API接口更新:支持HQ,ape,flac无损音质,缓存功能
  4. 折腾Java设计模式之建造者模式
  5. 谈谈To B业务的难点
  6. synchronized 原理知多少
  7. 架构设计:生产者/消费者模式 第3页:队列缓冲区
  8. Visual Studio怎么使用中文帮助文档
  9. 大叔手记(12):我的一次面试经历(谈大叔如何应对面试官)
  10. 新买的笔记本电脑怎么分盘_别再吐槽游戏本越玩越慢:笔记本电脑降速揭秘+散热维护小贴士...
  11. DataGridView
  12. Atitit 提升开发效率 通道化驱动化数据操作与查询 目录 1. xiaoguo 1 1.1. Atitit mybatis 简化开发与提升开发效率法 1 2. Code 1 3. ref 4
  13. 主流数据库管理系统介绍
  14. Command ‘docker‘ not found, but can be installed with:
  15. Python-有道翻译
  16. python制作mcmod_[周边教程]MinecraftMOD制作_从入门到精通
  17. vivo手机计算机怎么开语音,vivo怎么打开语音助手
  18. 如何使用 VSCode 开发 RT-Thread Smart 应用程序
  19. Python(2)变量声明、变量类型
  20. 【java】中文转拼音遇到的奇葩事件

热门文章

  1. 全能型Mac解压缩软件 MacZip2.0.1(41)中文版 原ezip
  2. 201671010412 郭佳 实验三 作业互评与改进
  3. ASA广告投放之关键词的选择
  4. java 数据库保存 高德地图 行政区域
  5. 我想去 河南省 郑州春苑置业有限公司 上班 待遇好不好
  6. 乔列斯基分解法求线性方程组的MATLAB程序实现
  7. 重点算法排序之快速排序、归并排序(上篇)
  8. STM32串口通信-USART全面讲解
  9. PHP经典实例(第二版) php实例大全
  10. [HNOI2011] 卡农 题解