文章目录
BCD码和非BCD码的计算与转换
BCD编码
介绍:
BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。
优点:
BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。
这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
常用的BCD编码方式
8421码
8421码是一种有权码,0~9的8421码与其二进制码完全相同,
和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。也就是说它在4位二进制数字中只占据了前十位(因为一个十进制位数字只有十个数制位);
//举个例子
25的二进制编码是0001 1001
25的8421BCD码是0010 0101
因为8421码是把每一个十进制数字都分离成一个4位的二进制数字,因此0010的十进制数字是2,0101的十进制数字是5,所以,25的8421BCD码是0010 0101
看另一个例子
123转换成8421BCD码如下
1——>0001
2——>0010
3——>0011
因此123的8421BCD码是0001 0010 0011
5421码
5421码是一种有权码,4位二进制码的权依次为5,4,2,1。从十进制的0~9转换为5421码,就是按照每一位的权凑出所要的数字,需要注意的是5421码并不是唯一的
比如说5
可以使用以下两种编码:1000,0101
但是一般情况下,我们都采用1000来进行表示5,也就是采用位权比较高的数来表示
7也是如此:1010,0111要采用1010,因为它位权比较高
2421码
2421码也是一种有权码,4位二进制码的权依次为2,4,2,1.从十进制的数字转换到2421码也是凑的思路。但是出现了两个2,并且还有4(=2+2)就注定了这个规律要比5421码稍微复杂一点。简单来说就是,先用4来凑(除了5,它的2421码为1011,而不是0101),>5的数先用第一个2,<5的数先用第二个2。
比如说6使用的1100,而不是0110
4采用是0100而不是1011
3是0011而不是1001
余3码
余3码是8421 BCD码的每个码组**加3(**0011)形成的。常用于BCD码的运算电路中。
比如说25
25的8421BCD码是0010 0101
25的余三码是0010 0100
非压缩BCD码
非压缩型BCD码是可存放一个一位十进制数的一个字节。
应用
非压缩型BCD码一个字节可存放一个一位十进制数,其中高4位的内容不做规定(也有部分书籍要求为0,二者均可),低4位二进制表示该位十进制数。如5的非压缩型BCD码是0000 0101,必须存放在一个字节中,6的非压缩型BCD码是0000 0110;
56的非压缩型BCD码是00000101 00000110