(1)(2)为正数,补码就是原码,直接由二进制转换为十进制即可。
(3)(4)为负数,符号位不变,数值位取反加1(跟求补过程一样),而后化为十进制。
二进制化为十进制没问题吧?
(1)(2)首位为0,是正数,(3)(4)首位为1,是负数,要先首位不变,后面的位数变反加1;再化为十进制数,加上负号。
(1)1*2^6+1*2^5+1*2^3+1*2=+106
(2)1*2^6+1*2^4+1*2^2+1*2+1=+87
(3) 首位不变,后面位变反加1后是11110011,真值是-115
(4)............................................是10000010,真值是-2
求补码对应的真值,直接转换就可以,不用绕到原码反码。
(1) 01101010: 64 + 32 + 8 + 2 = +106。
(2) 01010111: 64 + 16 + 4 + 2 + 1 = +87。
(3) 10001101:-128 + 8 + 4 + 1 =-115。
(4) 11111110:-128 + 126 = -2。