"对其取反加1后得01001011",是对10110101么?
10110101是个补码,那它的原码应该是11001011啊,怎么是01001011呢?
最后就这个问题来说,我只要求出这个补码的原码,原码转换为10进制数求绝对值,绝对值再转换为原码就是它的绝对值了对么?
对10110101(二进制补码)直接取反加1之后就是绝对值。当然你也可以将符号位和绝对值部分分开来处理:对10110101的低7位取反加1得绝对值1001011。符号位不变就是原码11001011。
因为题目只要求绝对值,没有求原码,所以偷了下懒,直接求出绝对值了,道理是一样的。
补码,代表了一个(正负)数值。
你求出这个数值,绝对值,不就知道了吗?
0011 0010 + 1000 0011 = 1011 0101
首位 1,既代表负号,也代表数值-128。
再加上其他数值位,就是真值:
-128 + 32 + 16 + 4 + 1 = -75
绝对值,就是:75。
--------------------
如果,补码是:0011 0010,
各位之和,就是真值:
32 + 16 + 2 = +50
绝对值,就是:50。