补码(two's complement,二的补码)是现代计算机表示有符号整数的标准方式。下面重点说明计算与估算。
补码长度或范围怎么估
w 位负数 n 的补码值等于 2^w-|n|。8 位:-1→255=11111111,-128→128=10000000。从补码还原:若最高位为 0 即原值;为 1 则结果为 读作无符号整数后减去 2^w。
示例
输入:15
补码结果:8 位补码 00001111(十进制校验:15)
说明:正数补码等于原码;负数补码等于反码加 1,8 位补码可表示 -128。
中文的处理
中文描述要先换成整数再求补码,例如“负一百二十八”在 8 位下是 10000000。
特殊字符
记住这些 8 位值:0=00000000,-1=11111111,127=01111111,-128=10000000,-42=11010110。
本站的进制转换工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【Java 的 byte 范围为什么是 -128~127?】byte 是 8 位补码,正好是这个范围。
【如何把补码转回十进制?】最高位为 0 按正数读;为 1 时,无符号值减去 2^w。11010110=214,214-256=-42。
【-1 的 8 位补码是什么?】11111111。这是最常见的记忆点:全 1 就是 -1。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。