谁能告诉我-32768的补码具体是怎么算出来的?
发布网友
发布时间:2022-05-02 04:14
我来回答
共5个回答
热心网友
时间:2022-06-28 03:00
溢出就溢出呗,先正数补多一位,然后再按规则,然后再把补上的高一位去掉。
-32768对应正数32768(1000000000000000),这才16位
然后逐位取反01111111111111111,
加1得 1000000000000000,所以-32768对应的补码为
1000000000000000
热心网友
时间:2022-06-28 03:00
就按照补码的定义来做,很简单的。
对于负数:用模,减去“-32768”的绝对值,即为补码。
即:
[-32768]补 = 65536-32768
= 32768 = 1000 0000 0000 0000(二进制)
--------
其它做法,都是错误的。
因为,-32768 既没有原码,也没有反码。
所以,用求反加一的做法,难以自圆其说。
全部回答
1楼厌今念往
2021-02-14 16:26
32767对应的二进制表示为0溢出就溢出呗,先正数补多一位,然后再按规则,然后再把补上的高一位去掉。 -32768对应正数32768(1000000000000000),这才16位 然后逐位取反0常数通常在主存中以补码形式存储的. -32768与+32768在主存中都是 0000000000000000 -32768的补码可以这样算=-32767-1 负数相减即为补码相加 如果以最高位为符号位,二进制原码最大为0
热心网友
时间:2022-06-28 03:01
就按照补码的定义来做,很简单的。
对于负数:用模,减去“-32768”的绝对值,即为补码。
即:
[-32768]补 = 65536-32768
= 32768 = 1000 0000 0000 0000(二进制)
--------
其它做法,都是错误的。
因为,-32768 既没有原码,也没有反码。
所以,用求反加一的做法,难以自圆其说。
热心网友
时间:2022-06-28 03:01
谁能告诉我-32768的补码具体是怎么算出来的?首先你必须知道,正数的补码就是它本身,负数的补码=它的反码+1
其次你还应该知道,计算机中一般将1表示负号,0表示正号
先不管符号,将32768换算成二进制为
1000 0000 0000 0000
然后算出他的反码为
0111 1111 1111 1111
然后反码加1为
1000 0000 0000 0000
最后加上符号位为
1 1000 0000 0000 0000
热心网友
时间:2022-06-28 03:02
常数通常在主存中以补码形式存储的.
-32768与+32768在主存中都是
0000000000000000
-32768的补码可以这样算=-32767-1
负数相减即为补码相加
1111111111111111加1即0000000000000000
此时程序状态字(PSW)的溢出位为1