二进制减法计算器

使用标准借位或二进制补码执行二进制减法,并显示分步解答和十进制等值。

输入作为二进制数的被减数和减数,选择计算方法,即可立即查看结果。

二进制减法计算器
使用标准借位或二进制补码执行二进制减法,并显示分步解答和十进制等值。

从右到左逐列相减,需要时从高位借位——经典的纸笔计算方法。

关于二进制减法

二进制减法是四种基本二进制算术运算之一,主要有两种执行方式:标准借位法和二进制补码法。理解这两种方法,对计算机科学学生、数字电子设计人员以及任何在位级别工作的人员都很有价值。 标准借位法类似十进制的竖式减法。将两个二进制数按最右侧位对齐,然后从右到左逐列相减。当上方数字小于下方数字时(也就是需要从 0 中减 1),就从下一高位列借位,临时将其降低一位,并向当前位置加 2——这相当于十进制减法中借 10。这个过程持续到所有列都处理完。该方法直观,也便于手工验证。 二进制补码法几乎是所有现代处理器和微控制器在硬件中实际实现减法的方式。要计算 A 减 B,先求 B 的二进制补码:翻转 B 的所有位(反码),然后加 1。接着用标准二进制加法将 A 与 B 的二进制补码相加。最高有效位产生的任何进位都会被舍弃。结果就是二进制补码表示中的 A − B。硬件中偏好这种方法,因为它不需要单独的减法电路——一个加法器即可同时完成加法和减法。 二进制补码也是计算机硬件中表示有符号整数的通用标准。在 n 位二进制补码系统中,正数按常规表示,负数则表示为它们的二进制补码。n 位有符号二进制补码整数的范围是 −2^(n−1) 到 2^(n−1) − 1。对于 8 位整数,即 −128 到 127。这种表示方式使溢出检测更直接:当进入符号位的进位与从符号位出来的进位不同时,就发生溢出。 在被减数大于或等于减数的情况下,两种方法会得到相同结果。当被减数较小时,标准借位法需要一个负的前导借位,而二进制补码法会在给定位宽内自然产生正确的有符号结果。本计算器会处理这两种情况,并在标准借位模式下结果为负时给出提示。

二进制减法示例

展示标准借位法和二进制补码法的练习示例。

运算二进制结果十进制校验
1101 − 101(标准借位)100013 − 5 = 8 ✓。高位无需借位;个位发生借位。
10010 − 1011(标准借位)11118 − 11 = 7 ✓。需要跨四列进行多次借位。
1100 − 111(二进制补码)10112 − 7 = 5 ✓。0111 的二进制补码是 1001;1100 + 1001 = 10101;舍弃进位 → 0101。
11110000 − 10101011(标准借位)1000101240 − 171 = 69 ✓。一次跨八个二进制位的复杂多重借位减法。

如何使用二进制减法计算器

  1. 在第一个字段中输入被减数(要从中减去的数),只能使用二进制数字 0 和 1。
  2. 在第二个字段中输入减数(要减去的数)。
  3. 选择计算方法:“标准借位”用于经典的逐列计算方法,“二进制补码”用于处理器风格的方法。
  4. 开启“显示分步过程”以查看中间步骤、借位或二进制补码转换。
  5. 点击“计算减法”查看二进制差及其十进制等值。

二进制减法常见问题

二进制减法中的借位是什么?
二进制减法中的借位,是当前位无法完成相减时(例如从 0 中减 1),从更高位取一个单位的过程。你从下一高位借 1,这会向当前列加 2(二进制 10),把 0 − 1 变成 10 − 1 = 1。这正是十进制减法中借 10 的二进制对应形式。
什么是二进制补码,为什么使用它?
二进制补码既是一种用二进制表示有符号整数的方法,也是一种减法技巧。要计算一个数的二进制补码,翻转它的所有位(得到反码),然后加 1。处理器使用二进制补码,是因为同一个加法器硬件即可处理加法和减法——A 减 B 等同于将 A 加上 B 的二进制补码。这也意味着零只有一种表示,避免了较早的符号-数值和反码格式中的歧义。
结果为负数时会怎样?
如果被减数小于减数,真实结果就是负数。在标准借位模式下,计算器会标记这种情况,因为结果无法表示为正的二进制字符串。在二进制补码模式下,结果会正确表示为负的二进制补码数,计算器也会显示有符号的十进制等值。
CPU 内部如何使用二进制减法?
CPU 使用算术逻辑单元(ALU)以二进制补码方法实现减法。ALU 包含一个加法器,一个控制信号会反转减数的各个位并将进位输入设为 1,从而等效地加上二进制补码。这意味着不需要单独的减法电路,可以节省晶体管并简化设计。最高有效位的进位输出用于检测溢出。
更改方法后结果会不同吗?
当被减数大于或等于减数时,两种方法始终会得到相同的最终数值结果,只是中间步骤不同。标准借位法直接在原始数字上操作;二进制补码法先对减数取负,再相加。两者都会得到相同的正确差值。
可以从较小的二进制数中减去较大的二进制数吗?
可以,但结果是负数。在标准借位模式下,本计算器会显示警告,因为正的二进制字符串无法表示负数结果。切换到二进制补码模式即可处理负差值:结果将是该负值的二进制补码编码,并显示带负号的有符号十进制等值。