若采用8位二进制补码表示十进制整数-128.则其表示形式为?A 10000001 B 00000000 C 10000000 D 00000001我想问一下怎么算出来的 C

问题描述:

若采用8位二进制补码表示十进制整数-128.则其表示形式为?
A 10000001 B 00000000 C 10000000 D 00000001
我想问一下怎么算出来的 C

负数时最高位为1,负数的补码为对应的原码部分取反加1,故有:
-1即1000 0001取反后为1111 1110 再加1得补码为1111 1111;
-2即1000 0010(理解为-1的数字位加了1成了10)取反后为1111 1101再加1得补码为1111 1110;
依次类推...
-127即1111 1111取反即1000 0000再加1得补码为1000 0001
-128即1000 0000(同理可以理解为数字位加1成了000 0000)取反后为1111 1111再加1得补码1000 0000