二进制补码计算器

将有符号十进制数或二进制位模式转换为 4、8、16 或 32 位补码表示。

计算二进制补码
输入有符号十进制整数,或以 0b 开头的二进制数。

示例:-5 或 0b11111011

关于二进制补码

补码是现代计算机表示有符号整数的标准方式。它采用固定的位数,并赋予最高位负的位权。因此,8 位模式可表示 -128 到 127;同样的八个位也可解释为 0 到 255 的无符号数,所以交换或显示二进制数据时,解释方式至关重要。 正数与普通二进制数相同,只需在前面补零。手动构造负数时,先将其正的绝对值写成指定位宽的二进制数,再逐位取反并加一。例如,十进制 5 的八位表示为 00000101,取反得到 11111010,加一得到 11111011,即 -5 的八位表示。本计算器通过对 2 的位宽次方取模得到相同结果。 位宽是数值表示的一部分。负五在四位下为 1011,八位下为 11111011,十六位下为 1111111111111011。扩展有符号负数时,重复最高位的一,这称为符号扩展;扩展正数时则重复最高位的零。如果截去的位有效,删减位数会改变数值,因此本计算器拒绝超出所选有符号范围的十进制数。 解读位模式时,先看最高位。如果为零,有符号和无符号解释相同;如果为一,从无符号值中减去 2 的位宽次方。因此,11111011 的无符号值为 251,而 251 - 256 得到有符号值 -5。此规则通常比逆向执行取反加一更快捷。 补码具有实用的算术性质。有符号与无符号数的加减法可使用同一二进制加法器,溢出则按上下文处理。补码与反码不同,零只有一种表示。其范围不对称,多出一个负数,因为零占用了一个非负位模式。 本计算器适用于计算机体系结构、数字逻辑、嵌入式编程、网络协议、调试和离散数学。所选位宽应与研究的系统或数据类型一致。缺少位宽及符号属性的位模式信息不完整,换一种约定解释可能得到完全不同的十进制结果。

补码示例

十进制数与位宽二进制位模式说明
-5,8 位11111011对 00000101 取反后加一。
-8,4 位1000这是四位有符号整数的最小值。
42,8 位00101010正数使用前导零补齐的普通二进制表示。

如何使用补码计算器

  1. 输入有符号十进制整数或带 0b 前缀的二进制位模式。
  2. 选择目标系统使用的位宽。
  3. 选择“计算补码”。
  4. 比较二进制、有符号十进制和无符号十进制表示。

补码常见问题

为什么位宽很重要?

位宽决定模数及有符号数范围。同一数字需要不同数量的填充位,在较小位宽下可能无法表示。

八位能表示什么范围?

八位补码整数范围为 -128 到 127,对应位模式的无符号范围为 0 到 255。

如何对二进制数取负?

在固定位宽内,逐位取反后加一。除最小可表示整数这一特殊情况外,再执行一次该过程会返回原值。

为什么有符号和无符号结果不同?

两者赋予最高位不同的位权。存储的位完全相同,但解释方式不同。

补码中有负零吗?

没有。零只有全零这一种表示,这是补码相对于原码和反码的重要优势。