负二—十进制数据

科技工作者之家 2020-11-17

用一组二进制数来表示一位十进制数的编码方法,称为二进制编码的十进制数或称为二一十进制数,简称BCD码。用4位二进制数来表示一位十进制数,4位二进制数有16种组合,从中选出10种来表示十进制数的10个数码有很多种方法,较常用的是8421 BCD码,即z位二进制数的“权”由左至右分别是8,4,2,1,所以称为8421 BCD码。

用于处理二—十进制数的方法与处理二进制数的方法是十分相似的。符号位用来表明该数是正或负,有三种表示负数的方法必须加以考虑。

BCD码概述在日常生活中人们习惯使用十进制,于是通常的输入/输出的数据也是用十进制实现人机交互。为了解决惯用的十进制与计算机能够识别的二进制之间的差别,引入BCD编码。

BCD码以4位为一组,选用0000B~1001B这10种状态,代表十进制中的0~9共10个数。当BCD码与十进制进行互换时,可以按4位一组,逐组进行互换。

例子1-1 将 62.142D 转换成BCD码。

(62.142)D = 62.142 = (01100010.000101000010)BCD

例子1-2 将10000101.001001011BCD转换成十进制数。

(10000101.001001011)BCD = 10000111.001001011000 =(87.258)D

要将一个二进制数转换称BCD码,可以先将它转换成十进制数,然后再将十进制数转换成BCD。同样将BCD码转换称二进制数,也是先转换为十进制数,再转换为二进制数。

例子1-3 将11111000100B转换为BCD码。

(11111000100)B = 1988D = 0001100110001000 = (0001100110001000)BCD

BCD码的运算,是指参加运算的数为BCD码,结果也为BCD码。运算时,BCD码低位与高位之间是逢十进一的,而4位二进制数是逢十六进一,在实际执行时计算机仍然是二进制运算操作。

形式表示负BCD数可用两种形式表示,一种表示为带有符号位的正数;另一种表示为某较大BCD数的补码。例如,一58的BCD数可表示为:

0 0101 1000

其中,符号位为0,表示其后的BCD数为负。

另一种表示法就是用58相对某一数值范围的最大BCD数的补码来表示。如果在所考虑的数值范围内最大数为100(一百),那么,一58可用42来表示,即:

一0101 1000——→0100 0010

转换的规则如下:表示负值的正数相对原负数而言,其最低位BCD数应取BCD补码,其余各位BCD数应取BCD反码。1

例子例1、用补码表示一367:

-(367)0011 0110 0111

取BCD反码

(633) 0110 0011 0011;

例2、在四位BCD数的范围内,用补码表示一367。

用四位BCD数表示一367应为:

一0000 0011 O110 011l 一367

此BCD数的最低位取BCD补码;其余各位取BCD反码,则得:

1001 0110 0011 0011 +9633

在四位BCD数范围内,此数与+367相加所得之和为0。1

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。