免费二进制减法计算器

输入二进制数,点击计算

二进制减法方法:借位法与补码法

二进制减法在数字电子、计算机算术和低级编程中是一项基本操作。虽然这个过程在许多方面类似于十进制减法,但由于只使用两个数字(0和1),它引入了一些特定规则。这个免费的在线二进制减法计算器旨在通过演示两种核心技术——借位法和补码法,帮助你高效地进行二进制数减法。无论你是准备考试、验证手工计算,还是处理位掩码,这个工具都能提供清晰的逐步解决方案,并支持各种有符号数表示。

每个二进制位代表2的递增幂。例如,十进制数13写作110121101_2,因为13=1×23+1×22+0×21+1×2013 = 1\times2^3 + 1\times2^2 + 0\times2^1 + 1\times2^0。二进制数的减法可以通过借位(类似十进制)或通过使用补码将减法转换为加法来执行。以下用实际例子解释两种方法。

借位法:逐列减法与借位

借位法将被减数和减数按最低位对齐。从最右侧列开始,应用以下规则:

  • 1−0=11 - 0 = 1
  • 1−1=01 - 1 = 0
  • 0−0=00 - 0 = 0
  • 0−1=10 - 1 = 1,从高一位借位后(当前列的数字变为10(二进制),所以10−1=110 - 1 = 1)。提供借位的列减1。

示例:11012−11021101_2 - 110_2

设置减法:

  1101
-  110
------

从最右侧开始处理:

  • 第1列(最低位):1−0=11 - 0 = 1
  • 第2列:0−10 - 1 → 从第3列借位,第2列变为10210_2(即十进制2),然后10−1=110 - 1 = 1;第3列从1减为0。
  • 第3列:现在0−0=00 - 0 = 0
  • 第4列:1−0=11 - 0 = 1

结果:011120111_2(或1112111_2)。十进制:1310−610=71013_{10} - 6_{10} = 7_{10}。

多个借位的示例:110002−1001211000_2 - 1001_2

对齐并补齐到相同长度:

  11000
- 01001
--------

最右侧:0−10 - 1 → 从第2列借位(第2列为0),所以借位传播到第3列(仍为0),最后到第4列(1)。经过这一连串借位后,第1列变为10210_2,第2列和第3列变为121_2(因为借位使数字减1,从高位借位后0变为1)。然后:第1列:10−1=110 - 1 = 1;第2列:最初为0,经过借位链后变为1,不再需要借位?正确的手动过程用计算器更容易理解。本工具可以一步步展示这样的借位链,使过程透明。

补码法:减法即为加法

补码法将减法转换为加法,这对于处理负数结果或只能做加法的计算机特别有用。步骤如下:

  1. 确保两个数具有相同的位数。如果减数位数较少,用前导零补齐。
  2. 计算减数的补码:反转每一位(0→1,1→0),然后加1。
  3. 将被减数与补码相加。
  4. 如果和产生超出原始位长度的额外(进位)位,丢弃该进位。剩下的位构成结果。

如果原减法会得到负数结果,结果将以补码形式呈现。计算器也可以通过交换顺序并附加负号来清晰显示。

示例:大数减小数

以11001012−1000110021100101_2 - 10001100_2为例。这里减数更大,所以差为负数。我们应用a−b=−(b−a)a - b = -(b - a),计算100011002−1100101210001100_2 - 1100101_2:

  • 补齐:01100101201100101_2(5位→8位)。
  • 01100101201100101_2的补码:取反→10011010210011010_2;加1→10011011210011011_2。
  • 相加:100011002+100110112=100100111210001100_2 + 10011011_2 = 100100111_2(9位)。
  • 丢弃前导1(超出8位的进位):00100111200100111_2。
  • 所以100011002−11001012=100111210001100_2 - 1100101_2 = 100111_2。附加负号:11001012−100011002=−10011121100101_2 - 10001100_2 = -100111_2。

十进制验证:11001012=101101100101_2 = 101_{10},100011002=1401010001100_2 = 140_{10},−3910=−1001112-39_{10} = -100111_2(因为3910=100111239_{10} = 100111_2)。结果正确。

补码法适用于任何位宽。计算器的逐步选项会展示补码计算、相加和进位丢弃,使过程透明。

表示有符号二进制数

减法涉及负数,因此理解符号表示很重要。有三种常见方案:

  1. 显式负号:最简单;在二进制数字前写一个负号(例如−1010-1010)。本工具接受此类输入。
  2. 符号-数值:最高位用作符号(0为正,1为负)。示例:+5=0101+5 = 0101,−5=1101-5 = 1101(假设4位)。其余位保存数值。
  3. 补码:负数是正数的补码。在8位下,−5=11111011-5 = 11111011。加法和减法在此方案下统一,这就是微处理器使用它的原因。

使用此计算器时,您可以输入带负号的二进制数。工具内部会将其转换为减法例程所需的格式。结果以有符号二进制值(必要时带负号)和所选位宽下的十进制等价形式呈现,说明相同的位模式可以有不同的解释。

该免费二进制减法计算器的主要特点

  • 支持两种方法:随时在借位法和补码法之间切换。
  • 逐步解决方案:激活此功能可查看补码法的每一步,包括补零、补码计算、相加和溢出丢弃。
  • 负数输入处理:输入带前导负号的二进制数;工具会在必要时自动应用a−b=−(b−a)a-b = -(b-a)恒等式。
  • 位宽选择:指定位数,以查看结果的有符号和无符号十进制解释。
  • 教育导向:清晰的示例和视觉对齐使其成为希望掌握二进制算术的学生和爱好者的理想工具。

无论你是学习数字系统的学生,还是验证位运算的开发者,这个在线二进制减法计算器都能为你提供快速准确的二进制数减法方式,并加深你对底层逻辑的理解。

常见问题

1. 如何使用借位法对二进制数进行减法?

按最低有效位对齐数字,然后逐列相减。应用规则:1–0=1,1–1=0,0–0=0,0–1需要从高位借位(使当前位变成10(二进制),所以10–1=1)。被借位的列减1。对每列重复此过程。

2. 借位法和补码减法之间有什么区别?

借位法直接逐列借位相减,类似十进制减法。补码减法将减数转换为其补码(取反加1),然后与被减数相加,丢弃最终进位。补码法特别适用于固定宽度操作和出现负数结果的情况。

3. 二进制减法计算器如何处理负数结果?

当从较小数减去较大数时,计算器使用恒等式a – b = –(b – a)。它交换顺序,通过补码法执行减法,并附加负号。您也可以直接输入带前导负号的二进制数。

4. 计算器能否显示减法的每一步?

可以。选择“显示逐步解答”选项会显示补码法的每个阶段:补零、位取反、相加和去除前导进位。这有助于您验证手工计算。

5. 该工具支持哪些符号表示?

计算器接受带显式负号的二进制数(例如-1010)。它不直接将符号-数值或补码输入解释为有符号数;您应将这些转换为带负号的表示。结果摘要包括所选位宽下的有符号和无符号十进制等价值,显示相同的位如何被不同解读。

使用方法

  1. 选择二进制表示的位长(4位、8位、12位、16位、32位或64位),或选择“其他”以自动调整大小。
  2. 在输入框中输入二进制被减数(第一个数)和减数(第二个数)。仅使用数字0和1,负数可带前导负号。
  3. 可选勾选“显示逐步解答”以查看补码法步骤,然后点击“计算”获得二进制结果以及有符号和无符号十进制等价值。