0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

8421bcd码运算规则

PoisonApple 来源:网络整理 2018-03-02 09:53 次阅读

BCD代码。Binary-Coded Decimal‎,简称BCD,称BCD码或二转十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

由于十进制数共有0、1、2、……、9十个数码,因此,至少需要4位二进制码来表示1位十进制数。4位二进制码共有2^4=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/(16-10)!约等于2.9乘以10的10次方种方案。常用的BCD代码列于末。

BCD码的运算法则

BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。

8421bcd码运算规则

修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数 9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如果相加时,本位产生了进位,也需加 6 进行修正。这样做的原因是,机器按二进制相加,所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,都要加 6 进行修正。下面举例说明。

需要修正 BCD码运算值的举例。

(1) 计算 5+8;

(2) 计算 8+8

解:(1) 将 5 和 8 以 8421 BCD输入机器,则运算如下:

0 1 0 1

+) 1 0 0 0

1 1 0 1 结果大于 9

+) 0 1 1 0 加 6 修正

1 0 0 1 1 13 的 BCD码

结果是 0011,即十进制数 3,还产生了进位。5+8=13,结论正确。

(2)将8以8421 BCD输入机器,则运算如下:

1 0 0 0

+)1 0 0 0

1 0 0 0 0 结果大于9

+)0 1 1 0 加6修正

1 0 1 1 0 16的BCD码

结果是0110,即十进制的6,而且产生进位。8+8=16,结论正确。

微机原理代码: (AL=BCD 5,BL=BCD 8) 设AH=0,则

ADD AL,BL

AAA

结果为 AX=0104H,表示非压缩十进制数,CF=1,AF=1,AH=1,AL=1

8421bcd码运算规则

使用AAA指令,可以不用屏蔽高半字节,只要在相加后立即执行AAA指令,便能在AX中得到一个正确的非压缩十进制数

压缩BCD码与非压缩BCD码的区别—— 压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。例如10010110B表示十进制数96D;非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 十进制
    +关注

    关注

    0

    文章

    67

    浏览量

    13274
  • BCD码
    +关注

    关注

    1

    文章

    52

    浏览量

    18364
  • 8421码
    +关注

    关注

    1

    文章

    8

    浏览量

    4070
收藏 人收藏

    评论

    相关推荐

    常用编码(BCD编码、余3、格雷反射、奇偶校验)

    常用编码1、BCD编码    例 写出十进数563.97D对应的8421BCD。     563.97D=0101 0110 0011 . 1001 01118421BCD   例 
    发表于 04-11 10:00

    什么是BCD8421、余三、格雷

    !!余三是在8421BCD的基础上,把每个数的代码加上0011(对应十进制数3)后得到的。格雷的编码规则是相邻的两代码之间只有一位二进
    发表于 11-03 17:36

    quartusii 的warning和仿真问题

    高手!求助! 这是用两片74LS83设计的8421BCD全加器,要求输入为8421BCD,输出也为8421BCD。为什么波形图不正确呢?
    发表于 11-15 16:16

    【FPGA开源教程连载】第五章 BCD计数器设计与应用

    格式均为代指8421。通过以上介绍将十进制895转换为BCD就是1001_1001_0101,同理若将BCD
    发表于 12-23 21:08

    想用两片74LS153和一只数码显示四组8421BCD测试系统即用一只数码管分别显示四位十进制数的个位 十位 百位 千位

    用两片74LS153和一只数码显示四组8421BCD测试系统即用一只数码管分别显示四位十进制数的个位 十位 百位 千位;请教各位大佬
    发表于 12-15 13:59

    C语言中十进制转8421BCD是用的什么方法?

    今天FPGA的同事问我C语言中十进制转8421BCD是用的什么方法?第一时间我在想除了除10取余还能有什么办法?过了一会儿,突然想起有没有办法从移位上解决这个问题呢?于是乎就看到这个链接。然后就
    发表于 07-15 09:21

    8421BCD与二进制原码的相互转换

    8421BCD与二进制原码的相互转换。九层妖塔 起于垒土【蓝桥杯】—{模板Template}—{Part7:DS18B20温度传感器}一、基本模板1、`头文件`● 改编自国信长天蓝桥杯官方蓝皮书
    发表于 01-17 07:13

    在FPGA中实现一种二进制转BCD的电路设计

    字逻辑设计课程中,我们已经学过了BCD的相关知识,它用4位二进制数来表示1位十进制数中的09,是二进制编码的十进制代码,常见的BCD8421B
    发表于 07-12 16:41

    8421同步十进制递增计数器

    8421同步十进制递增计数器
    发表于 09-24 11:09 6563次阅读
    <b class='flag-5'>8421</b><b class='flag-5'>码</b>同步十进制递增计数器

    常用编码(BCD编码、余3、格雷反射、奇偶校验)

    常用编码1、BCD编码    例 写出十进数563.97D对应的8421BCD。     563.97D=0101 0110 0011 . 1001 01118421BCD
    发表于 09-19 11:23 9588次阅读

    8421转换十进制程序

    8421是中国大陆的叫法,8421BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的
    的头像 发表于 03-02 09:05 3.3w次阅读
    <b class='flag-5'>8421</b><b class='flag-5'>码</b>转换十进制程序

    8421bcd转换二进制

    算机内毫无例外地都使用二进制数进行运算,但通常采用8进制和十六进制的形式读写。对于计算机技术专业人员,要理解这些数的含义是没问题,但对非专业人员却不那么容易的。由于日常生活中,人们最熟悉的数制是十进制,因此专门规定了一种二进制的十进制
    的头像 发表于 03-02 09:20 7.3w次阅读
    <b class='flag-5'>8421bcd</b><b class='flag-5'>码</b>转换二进制

    余38421BCD的转换_8421BCD转换成余3

    二进制编码的十进制数,简称BCD。这种方法是用4位二进制的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。由8421
    的头像 发表于 03-02 09:38 19.4w次阅读
    余3<b class='flag-5'>码</b>至<b class='flag-5'>8421BCD</b><b class='flag-5'>码</b>的转换_<b class='flag-5'>8421BCD</b><b class='flag-5'>码</b>转换成余3<b class='flag-5'>码</b>

    8421BCD转换成5421BCD

    5421BCD,是二—十进制代码(BCD)的一种;二—十进制代码(BCD)的一种;5421
    的头像 发表于 03-02 13:48 8w次阅读
    <b class='flag-5'>8421BCD</b><b class='flag-5'>码</b>转换成5421<b class='flag-5'>BCD</b><b class='flag-5'>码</b>

    什么是BCD

    在使用RTC外设时,我们常常会接触 BCD的概念,同时鱼鹰在介绍 USB 协议版本时也说了 BCD ,那么什么是 BCD
    的头像 发表于 09-07 09:10 1.7w次阅读