购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.5 负数补码的计算

本节将介绍负数补码的计算方法,内容包括负整数补码的计算和负小数补码的计算。

4.5.1 负整数补码的计算

负整数二进制补码的计算主要有下面的方法。

1.原码转补码

将一个正数转换为一个二进制补码编码同样幅度的负数,其主要步骤如下所示。

(1)将该负数所对应的正数按位全部取反。

(2)将取反后的结果加1。

【例4-7】 将+17转换为-17的二进制补码。

(1)对应的17的原码为00010001。

(2)按位取反后变为11101110。

(3)结果加1,变成11101111。

【例4-8】 将-35转换为+35的二进制补码。

(1)对应的-35的补码为11011101。

(2)按位取反后变成00100010。

(3)结果加1,变成00100011。

【例4-9】 将-127转换为+127的二进制补码。

(1)对应的-127的补码为10000001。

(2)按位取反后变成01111110。

(3)结果加1,变成01111111。

【例4-10】 将+1转换为-1的二进制补码。

(1)对应的+1的原码为00000001。

(2)按位取反后变成11111110。

(3)结果加1,变成11111111。

2.比较法

比较法的计算步骤如下所示。

(1)得到需要转换负数的最小权值,该权值为负数,以-2 i 表示,使得其满足:

-2 i <需要转换的负数

(2)取比该权值绝对值2 i 小的权值,以2 i-1 ,2 i-2 ,…,2 0 的幂次方表示。

(3)需要转换的负数+2 i ,得到正数,以后的权值2 i-1 ,2 i-2 ,…,2 0 按照前面的方法与这个正数进行比较。

【例4-11】 使用比较法得到十进制负整数-97所对应的二进制补码。

对于十进制负整数-97来说,假设使用8位二进制数进行表示,则其所对应的二进制补码为10011111B,如表4.5所示。

表4.5 有符号整数的二进制补码表示

img

4.5.2 负小数补码的计算

对于十进制负小数而言,求取其所对应的二进制补码最容易的方法就是比较法。该方法和前面介绍负整数补码中所使用的比较法类似。步骤如下所示。

(1)得到需要转换负数的最小权值,该权值为负数,以-2 0 表示。

(2)取比该权值绝对值2 i 小的权值,以2 -1 ,2 -2 ,…,2 -N 的幂次方表示。

(3)需要转换的负数+1,得到正数,以后的权值2 -1 ,2 -2 ,…,2 -N 按照前面的方法和这个正数进行比较。

【例4-12】 使用比较法得到十进制负小数-0.03125所对应的二进制补码(见表4.6)。

表4.6 有符号小数的二进制补码表示

img

思考与练习4-4:当数据宽度为8位时,使用补码表示下面的负整数。

(1)-1=______________________。

(2)-127=____________________。

(3)-55=_____________________。

思考与练习4-5:当数据宽度为8位时,可以表示整数的范围是________________。

思考与练习4-6:当数据宽度为16位时,可以表示整数的范围是_______________。

思考与练习4-7:当数据宽度为8位时,使用补码表示下面的小数。

(1)-0.897=___________________。

(2)-0.003=____________________。

上面使用二进数进行表示时,是否存在误差?如果有误差,请计算误差的大小。 EzbpmAtkGTyzxY06x4c5UvRWyalYpLMX8o/8oohQoPgPqe/P/HmV4IAXdqwV/HSr

点击中间区域
呼出菜单
上一章
目录
下一章
×