BCD码又称8421码,是一种将每一个10进制数位用4位二进制数表示的计数方式,其数据的表示范围是:0到9999.所谓的8421指的是:1000,这个表示的是8;0100表示的是4;0010表示的是2;0001表示的是1;相应地:1001表示:8+1=9;之类的,其它以此类推。比如像青岛黄工说的10进制的62,我们可以看到6表示为:0110,2表示为:0010,那么62的BCD码表示就为(62)十进制=(0110 0010)BCD码制。
但是值得注意的是,这个转换成的BCD码不是二进制数,如不能通过将(0110 0010)BCD码制通过二进制的方式转换成十进制,因为这个是一种特殊的计算机码制。
对于要将形如(01001110001)BCD码制转换成十进制,我们一般是从低位到高位,每四位划分一次,高位不够四位可以补0的。如本例,可以划分为:(010 0111 0001)BCD码制=(271)十进制码制。
BCD码又称8421码,是一种将每一个10进制的数用4位二进制的数来表示的记数形式,一个字节有8位,可容纳2位BCD码数,字节的低4位表示个位BCD码数,高4位表示十位的BCD码数。每4位的有效值(1)由低到高分别表示为1、2、4、8(对个位),10、20、40、80(对十位)....
整数通常是以16进制(即2进制)数的形式存放在存储器内,将整数转换为BCD码计算思路是这样:将原整数存放在M1区,M2为BCD码存放区,将M2清0,如最大整数<10000,则M2选用一个字存储器就够,计算过程是:先判断M1是否大于10进数8000(转算16进制数为1F40),如大于,用M1值 - 1F40,将差-->M1,M2加 1 ,如小于,不作减运算,接着将M2左移一位,再判断M1是否大于10进数4000(转算16进制数为0FA0),如大于,用M1值 - FA0,将差-->M1,M2加 1 如小于,不作减运算,接着将M2 左移一位.....接着按同样判断处理过程,判断2000、1000、800、400、200、100、80、40、20、10,判断完10后,将M2左移4位,再将M1或到M2中,此时的M2即为转换BCD码数。