设机器数字长为8位(含1位符号位),A=9/64,B=-13/32,计算[A+/-]补,并还原成真值
时间: 2024-05-21 20:14:10 浏览: 106
好的,根据你的要求,我不会透露任何信息,也不会重复你所说的话。
首先,我们需要将A和B转换为小数的二进制形式:
A = 0.1406(十进制)
B = -0.4062(十进制)
然后,我们将它们乘以2^8,以获取8位整数部分和8位小数部分,如下所示:
A = 00111100.10000000
B = 11000101.01000000
接下来,我们将这些二进制数转换为带符号的整数:
A = 00111100.10000000 = +60
B = 11000101.01000000 = -107
现在,我们可以计算A的2的补码:
A的绝对值为60,转换为二进制为00111100。然后,我们将其取反得到11000011,最后加1得到11000100,这是A的2的补码。
现在,我们需要将A的2的补码还原为原始的真值。由于符号位是1,所以A是负数。我们取A的绝对值的二进制形式11000100,再将其取反得到00111011。然后,我们将其转换为十进制得到61,再加上1得到62。由于符号位是1,所以A的真值是-62。
因此,[A/-]补的值是-62。
相关问题
设机器数字长为8位(含1位符号位), A=13/64, B-39164, 求[A]补,(B]补[-A]补 [-B]补 [A-B]补及A-B真值。
首先将13/64转化为二进制小数:
0.001011
因为是正数,所以符号位为0。将这个二进制小数乘以2^8,得到的结果为26.56,取整为26,即[A]补为00011010。
将B转化为二进制,得到1001100011100100,然后在前面补上6个0,使其长度为8位,即000000001001100011100100。因为是正数,所以符号位为0。取反得到其补码为111111110110011100011100,即[B]补为111111110110011100011100。
将-A转化为二进制,得到11111110.110101,因为是负数,所以符号位为1。将这个二进制数乘以2^8,得到的结果为-26,即[-A]补为10011110。
将-B转化为二进制,得到1001100011100100,然后在前面补上6个1,使其长度为8位,即11111111001100011100100。因为是负数,所以符号位为1。取反得到其补码为000000001100111000110100,即[-B]补为000000001100111000110100。
将A-B的真值计算出来,先将A和B转化为小数形式:
A=0.001011
B=1001100.011100
将B右移6位,使其小数点和A对齐:
0000000.1001100
然后将A和B相减,得到:
-0.011011
将其转化为二进制,得到11111110.100101,最后乘以2^8,得到真值为-27,即A-B的真值为-27。所以[A-B]补为10010001。
阅读全文