-32768的补码等于多少?原码又是?

学习 时间:2026-04-03 09:22:17 阅读:4984
-32768的补码等于多少?原码又是?

最佳回答

怕黑的耳机

深情的小蝴蝶

2026-04-03 09:22:17

你应该考虑的是16位的有符号整数(int)吧在计算机中是用补码存储数据 为什么不用原码存 就是因为原码表示不了最小值-32768如果是原码表示的话,编码中+0是用16个0表示,-0是用1后跟15个0表示但是由于+0等于-0所以相当于多花了一个编码来编码0那么用补码会怎样补码+0编码出来是16个0-0 = [1000000000000000]原 = [1111111111111111]反 = [(1)0000000000000000]补其中1溢出不管了 剩下的是16个0与+0编码相同这样一来用16位进行编码如果按原码编码可以覆盖-32767~32767[1111111111111111~0111111111111111]而用补码编码只覆盖到[1111111111111111~0111111111111111]其中[1000000000000000]编码不到于是规定了用它表示最小值-32768因此,在考虑16位有符号整数时,-32768只有补码[1000000000000000]没有原码当然如果你考虑的是大于16位来编码的话-32768肯定能正常编码,如上面所示,用计算器换算原码补码就那结果但是那显然是大于了16位来考虑的

最新回答共有2条回答

  • 慈祥的冷风
    回复
    2026-04-03 09:22:17

    你应该考虑的是16位的有符号整数(int)吧在计算机中是用补码存储数据 为什么不用原码存 就是因为原码表示不了最小值-32768如果是原码表示的话,编码中+0是用16个0表示,-0是用1后跟15个0表示但是由于+0等于-0所以相当于多花了一个编码来编码0那么用补码会怎样补码+0编码出来是16个0-0 = [1000000000000000]原 = [1111111111111111]反 = [(1)0000000000000000]补其中1溢出不管了 剩下的是16个0与+0编码相同这样一来用16位进行编码如果按原码编码可以覆盖-32767~32767[1111111111111111~0111111111111111]而用补码编码只覆盖到[1111111111111111~0111111111111111]其中[1000000000000000]编码不到于是规定了用它表示最小值-32768因此,在考虑16位有符号整数时,-32768只有补码[1000000000000000]没有原码当然如果你考虑的是大于16位来编码的话-32768肯定能正常编码,如上面所示,用计算器换算原码补码就那结果但是那显然是大于了16位来考虑的

上一篇 某三体综合征患儿的基因型为Ddd,其父亲基因型为DD,母亲为Dd,其原因是

下一篇 崔颢的全诗!