综合百科

BCD如何计算

要计算BCD,可以按照以下步骤进行:

1. 首先,将需要转换成BCD循环码的数字拆分成各个位数。例如,将一个四位数拆分成个位、十位、百位、千位四个数值。

2. 然后,将每个位数转换成BCD码。BCD码使用四位二进制码来表示一个十进制数,即每个位数使用四位二进制码。

3. 对于每个位数,将其转换成对应的BCD码。可以使用以下表格进行转换:

十进制数|BCD码

------|------

0 | 0000

1 | 0001

2 | 0010

3 | 0011

4 | 0100

5 | 0101

6 | 0110

7 | 0111

8 | 1000

9 | 1001

4. 将每个位数的BCD码进行连接,得到整个BCD循环码。

5. 如果需要循环移位,将BCD循环码最高位的数值移动到最低位,其他位数依次往上移位。

6. 重复以上步骤,直到得到想要的循环码。

需要注意的是,BCD循环码的长度取决于原始数字的位数。例如,一个四位数的BCD循环码将由四个四位BCD码组成,总长度为16位。

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指令。