当十六进制数D8 被看作是某一带符号数的补码时,它所表示的十进制数是什么?

来源:百度知道 编辑:UC知道 时间:2024/05/26 18:35:53
有知道的朋友请帮忙看一下
请附上解题过程,谢谢各位

补码减1得到反码,反码的各个bit取反得到原码,原码再加上符号位就得到结果了。
由于D8被看作是补码,它的2进制是11011000,最高位为1的正好是第8位,所以用1个字节来表示就够了,按照上面说的计算方法为:
((0xD8 - 1) Xor 0xFF) * (-1) = -(0x28) = -40
其中Xor是求异或的符号,每种语言求异或的标识符可能不同,这里异或符号用的是附件中计算器上的按钮表示

11011000 带符号数的补码
11010111 带符号数的反码
10101000 带符号数的原码
所以它所表示的十进制数是:-40

补码是在只有负数的情况下才出现的,
补码是原数的绝对值取反+1或原数不带符号位取反+1得来的
d8转为二进制是11011000 我们先不考虑它的符号位,先把加的1减去得11010111取反得到原码101000即40因符号位为1是个负数即-40