bcd码怎么计算 bcd码计算方法

bcd码怎么计算?

BCD码的运算法则  

BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进  

制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。  

修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数 9),不需要修  

正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如  

果相加时,本位产生了进位,也需加 6 进行修正。这样做的原因是,机器按二进制相加,  

所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进  

制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,  

都要加 6 进行修正。下面举例说明。   【例 1.3】 需要修正 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  

使用AAA指令,

延伸阅读

bcd码为什么会有八位?

这是由BCD码的编码规则所决定的。首先要了解什么是BCD码。

BCD码是用4个二进制位数来表示一位十进制数。在计算机中一个基本存贮单元(通常被称为字节)是8个二进制位,所以一个字节只可以表示2位BCD码。而一位十进制数的最大值是9,因此用一个字节表示的BCD码最大值是99。

什么叫BCD码?

用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码例如:十进制8的BCD码是1000 十进制9的BCD码是1001再者,十进制83.6的BCD码是1000 0011.0110 可以理解BCD就是一个二进制

BCD码是什么?

BCD码实际上是在用二进制去和十进制的编码做对应.3位二进制只能表示到8,4位表示到16会多出6个编码,这给我们带来了一些操作空间.

8421码

在数值上和二进制码11对应,是可以直接进行计算的

5421码

数位权值为5,4,2,1.编码的好处在于,最高位权值为5,将0~9一分为2,后面的5~9可以表示成0+(1~4),好处跟算盘一致:直观.

2421码

数位权值为2,4,2,1.两个数位都有2就会出问题,例如0101和1011都对应5.所以做了规定:0101~1010不许用.2421码的好处是对9互补,需要了解一下二进制运算.简单理解:为运算提供了方便.

余三码

涉及到进位的问题,十进制各位两数相加,发生进位用8421码计算若和小于16进位不会产生.于是想了个办法把8421码都加3就好了,这样和就加上了6正好从十进制映射到十六进制让进位正常发生.

格雷码

格雷码的核心思想是:相邻两数间只有一个位元改变.假设你家有个7挡电风扇,使用3个机械开关来控制风量.你在相邻两挡之间只需要拨动1次开关.如果是421编码,你从3挡(011)拨到4挡(100)需要关两个开一个,操作三次.格雷码的设计可以做到步进的代价最小.

有谁知道什么是BCD码呢?

bcd码也叫8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,着十个数每个数都有自己的8421码: 0=0000 1=0001 2=0010 3=0011 4=0100 5=0101 6=0110 7=0111 8=1000 9=1001 举个例子: 321的8421码就是 3 2 1 0011 0010 0001 就是这样了:)

BCD码是将十进制数符转换成几位二进制?

转化标准二进制方法如下,直接用例子来回答:用BCD码表示:十位上的十进制数为 2 == BCD码表示为 0010;个位上的十进制数9 === BCD码表示为 1001;所以总的来说 十进制数 29 用BCD码表示为:0010 1001转换过程:把BCD码 0010(十进制数为十位上的 2)右移4位(其实表示当作一个个位数,或者说单纯的数值),然后乘以10 还原到十进制的权重(因为这个数本来表示的就是十进制数中的十位)。

处理完十位上的数,接着处理个位上的数。

因为BCD码的权重和二进制的前四位权重是一样(2^n,n为位数),所以直接用前面的十位上的数加上它就可以了。简单点分析:0010(十位上的2 BCD码表示)× 10 + 1001(个位上的9 BCD码表示)= 29的二进制数C代码表示:#define BCD_TO_BIN(val) ((((val) >> 4) * 10) + ((val)&15))BCD码是用4位二进制数(各个位的权重分别为:8421,所以叫8421码)来表示一位十进制数。

这里的一位十进制数要特别说明下,一位十进制数只能是 0~9之间的一个数值。

比如:6 就是表示一位十进制数6;66则是表示两位十进制数;666则是表示三位十进制数。扩展资料:BCD码的特点:

1、8421编码直观,好理解。

2、5421码和2421码中大于5的数字都是高位为1,5以下的高位为0。

3、余3码是8421码加上3,有上溢出和下溢出的空间。

4、格雷码相邻的2个数只有一位不同。BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。

这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如果相加时,本位产生了进位,也需加 6 进行修正。

这样做的原因是,机器按二进制相加,所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,都要加 6 进行修正。

bcd压缩码是什么?

所谓的压缩BCD码,指的就是用四位二进制数表示一位BCD码,用一个字节表示的两位BCD码,称为压缩型BCD码。

一个BCD码占4位,而一个字节有8位。若把二个BCD码放在一个字节中,就叫压缩的BCD码。而一个字节只放一个BCD码,高位置0,则叫非压缩的BCD码。

压缩BCD码分为有权码和无权码。有权码是以不同的权值关系进行编码,所以,有权码可以按权展开求和得到等值十进制数如:8421(最常用)、2421、5421…;无权码如:余3码、格雷码(严格意义上格雷码并不属于BCD码)…则没有这种换算方式。

bcd通常采用什么码?

常用bcd码有8421、2421、5421等,BCD码可分为有权码和无权码两类:有权BCD码有8421码、2421码、5421码,其中8421码是最常用的;无权BCD码有余3码,余3循环码等。

BCD码(Binary-Coded Decimal?)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。

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

BCD码是哪些?

BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。

其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码。

8421BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。

5421BCD码和2421BCD码同为有权码,它们从高位到低位的权值分别为5、4、2、1和2、4、2、1。

余3码是由8421码加3后形成的,是一种“对9的自补码”。余3循环码是一种变权码,每一位的在不同代码中并不代表固定的数值,主要特点是相邻的两个代码之间仅有一位的状态不同。

格雷码是一个数列集合,它是无权码,它的两个相邻代码之间仅有一位取值范围。