补码(two's complement,二的补码)是现代计算机表示有符号整数的标准方式。下面重点说明开发场景下的含义。
补码在开发中是什么
补码(two's complement,二的补码)是现代计算机表示有符号整数的标准方式。正数的补码等于原码;负数的补码等于反码加 1。8 位下 -1 是 11111111,-42 是 11010110,-128 是 10000000。补码加法、减法可用同一套无符号加法电路完成。
- 正数补码 = 原码;负数补码 = 反码 + 1
- 8 位补码范围是 -128~+127,只有一种零(00000000)
- 最高位既是符号位,也参与运算
示例
输入:8
补码结果:8 位补码 00001000(十进制校验:8)
说明:正数补码等于原码;负数补码等于反码加 1,8 位补码可表示 -128。
常见用途
- 几乎所有 CPU 和编程语言的有符号整数存储
- 二进制补码算术、溢出分析
- 协议字段、文件格式中的有符号整数
- 位运算和掩码处理
怎样核对结果
把得到的二进制按无符号读出再减去 2^w(若最高位为 1),应回到原来的十进制。也可用语言打印同一数值核对。
本站的进制转换工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【如何把补码转回十进制?】最高位为 0 按正数读;为 1 时,无符号值减去 2^w。11010110=214,214-256=-42。
【-1 的 8 位补码是什么?】11111111。这是最常见的记忆点:全 1 就是 -1。
【8 位补码能表示 -128 吗?】能,编码是 10000000。它没有对应的正数 +128。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。