若采用8位二进制补码表示十进制整数-128,则表示形式为

如题所述

若采用8位二进制补码表示十进制整数-128,则表示形式为

常说的“取反加一”,解决不了这个问题。

8 位二进制的原码和反码,表示范围都是:-127 ~+127。

必须采用“补码定义式”才能求出-128 的补码。

你去算一下吧,正确答案就是:1000 0000。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-21
求一个负数的补码,简便算法是求反加一.
用这种算法,必须从
原码、反码,这条路走过来.
但是,-128
并没有原码和反码,所以
求反加一
这条路是走不通的.
这时,就得用
求负数的补码
的定义
来做了.
X
如果是负数,[X]补
=
2^8

|X|
=
1
0000
0000

1000
0000

1000
0000.
可以参考:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
第2个回答  2021-01-31
补码,与原码反码无关。

补码,有自己的定义式。
X 如果是负数,其 8 位的补码如下:
  [ X ]补 = 2^8 - | X |
按照二进制计算如下:
  = 1 0000 0000 - 1000 0000
  = 1000 0000
第3个回答  2019-05-16
负数时最高位为1,负数的补码为对应的原码部分取反加1,故有:
-1即10000001取反后为11111110再加1得补码为11111111;
-2即10000010(理解为-1的数字位加了1成了10)取反后为11111101再加1得补码为11111110;
依次类推...
-127即11111111取反即10000000再加1得补码为10000001
-128即10000000(同理可以理解为数字位加1成了0000000)取反后为11111111再加1得补码10000000本回答被网友采纳
相似回答