补码(two's complement,二的补码)是现代计算机表示有符号整数的标准方式。下面重点说明用途边界。
补码不做真实性证明
把得到的二进制按无符号读出再减去 2^w(若最高位为 1),应回到原来的十进制。也可用语言打印同一数值核对。
示例
输入:2
补码结果:8 位补码 00000010(十进制校验:2)
说明:正数补码等于原码;负数补码等于反码加 1,8 位补码可表示 -128。
特殊字符
记住这些 8 位值:0=00000000,-1=11111111,127=01111111,-128=10000000,-42=11010110。
乱码排查
把补码当原码读是最常见的误解:11111111 会被读成 -127,实际是 -1。协议文档应写明 signed 使用 two's complement。
本站的进制转换工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【-1 的 8 位补码是什么?】11111111。这是最常见的记忆点:全 1 就是 -1。
【8 位补码能表示 -128 吗?】能,编码是 10000000。它没有对应的正数 +128。
【为什么 11111111 是 -1 不是 -127?】按补码还原:取反得 00000000,加 1 得 1,再加负号为 -1。读成原码才会得到 -127。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。