第一部分
BCD码是用4位二进制数来表示1位十进制数,常用的BCD码是8421BCD码。
对于4个二进制数,如果该位为1,则将该位对应的十进制写出。最终所有的十进制数之和为该BCD码表示的二进制数。
举例:
BCD码: 0001 0010 1001 1111
对应每一位的值: 8421 8421 8421 8421
实际对应结果: 0001 0020 8001 8421
十进制数: 0+0+0+1 0+0+2+0 8+0+0+1 8+4+2+1
1 2 9 15
BCD码是用来表示0、1、2、3、4、5、6、7、8、9这10个数
对应关系如图:
虽然用4位二进制可以表示16 个数,但这里,我们只需要表示出0—9就可以了。多出的6个二进制编码不作任何表示。
第二部分
BCD的加法 :
先将竖式每一位对齐写出,然后4位一组分开。
在加的过程中满二进一的规则进行。得到一串二进制数。
当2个BCD码相加,如果每四位一组的和小于1001(即十进制的10)不需要修正,结果就是最终结果。
如果相加之和不产生进位但结果在1010到1111(即十进制的10到15)之间,则需要修正,需加6进行修正。
如果相加时,本位产生进位,也需加6进行修正。
原本4位二进制相加时,是按逢十六进一,但我们在计算时是按按逢十进一的原则在计算,所以16与10差6,所以当和超过9或有进位时我们都要加6修正【进位是指4位一组向前一个4位一组进1,并不是二进制的1位】
BCD减法
先将竖式每一位对齐写出,然后4位一组分开。
类似于十进制的减法,不同的是,在这里,本位不够时,向前一个二进制位借一,接到低位时当2处理。
二进制计算的结果要进行修正。
原本4位二进制相减时,是按逢十六减一,但我们在计算时是按按逢十减一的原则在计算,所以16与10差6,少减6,所以有借位时要进行减六修正【进位是指4位一组向前一个4位一组进1,并不是二进制的1位】