通过MCP连接 →

输入计算

数学公式

广告

结果

商(二进制)
110
remainder 0
被除数(十进制) 12
除数(十进制) 2
商(十进制) 6
余数(十进制) 0

什么是二进制除法计算器?

这款工具可以把一个二进制(即基数为 2 的数)除以另一个二进制数,并同时给出二进制和十进制形式的余数。由于手工进行二进制长除法很容易出错,本计算器会先把你输入的数转换为十进制,执行整数除法,再把结果换算回二进制,省去繁琐的笔算过程。

使用方法

在第一个输入框中填写被除数(被分割的那个数),在第二个输入框中填写除数,只能使用数字 0 和 1。点击“计算”即可看到商和余数。注意:除数不能为 0,因为除以零在数学上没有意义。

计算公式说明

设 \(A\) 和 \(B\) 为输入的两个二进制数,计算器会先求出 \(A_{10} = \text{parseBinary}(A)\)、\(B_{10} = \text{parseBinary}(B)\)。整数商为 \(Q = \left\lfloor A_{10} / B_{10} \right\rfloor\),余数为 \(R = A_{10} \bmod B_{10}\),随后再把 \(Q\) 和 \(R\) 转换回二进制。这与计算机执行无符号整数除法的原理完全一致。

$$\left(\text{Dividend}_2\right) \div \left(\text{Divisor}_2\right) = Q \;\text{R}\; R$$

$$\begin{gathered} \text{Dividend}_2 \div \text{Divisor}_2 = Q \;\text{remainder}\; R \\[1.5em] \text{where}\quad \left\{ \begin{aligned} Q &= \left\lfloor \frac{A}{B} \right\rfloor \\ R &= A \bmod B \\ A &= (\text{Dividend}_2)_{10} \\ B &= (\text{Divisor}_2)_{10} \end{aligned} \right. \end{gathered}$$

长除法布局,显示二进制除数、被除数、商和余数的位置
二进制长除法将结果分为商和余数。

计算示例

用 \(1100_2\) 除以 \(10_2\)。换算成十进制:\(1100_2 = 12\),\(10_2 = 2\)。于是 \(12 \div 2 = 6\),余数为 \(0\)。再换算回二进制:\(6 = 110_2\),\(0 = 0_2\)。因此 \(1100 \div 10 = \textbf{110 余 0}\)。

逐步进行的二进制长除法,含移位与相减运算
每一步进行比较、相减并落下下一位。

如何手工进行二进制数除法

二进制长除法与十进制长除法的工作原理完全相同,但实际上更简单:在每一步中,除数要么能整除当前的二进位(写上1),要么不能(写上0)。没有乘法表需要记忆——你只需将除数乘以0或1。

计算 \(\text{被除数}_2 \div \text{除数}_2 = Q \;\text{余}\; R\) 的通用步骤为:

  1. 从最高有效位对齐。从被除数的最左边一位开始作为当前工作值。
  2. 比较当前工作值与除数。如果工作值大于或等于除数,则除数"能整除"。
  3. 写商的一位。如果能整除则在上方写1,否则写0
  4. 做减法。如果你写的是1,从工作值中减去除数;差值成为新的工作值。如果你写的是0,工作值不变。
  5. 将被除数的下一位取下来并附加到工作值上。
  6. 重复第2步到第5步,直到被除数的每一位都被取下来。
  7. 读出结果。上方收集的这些位组成商 \(Q\);剩余的工作值是余数 \(R\)。

计算示例:\(1011_2 \div 10_2\)(即十进制的11 ÷ 2)。

  1. 取下第一位:工作值 = 1。\(1 \ge 10\)?不是 → 商的一位0
  2. 取下下一位:工作值 = 10。\(10 \ge 10\)?是的 → 商的一位1,做减法:\(10 - 10 = 0\)。
  3. 取下下一位:工作值 = 01 = 1。\(1 \ge 10\)?不是 → 商的一位0
  4. 取下最后一位:工作值 = 11。\(11 \ge 10\)?是的 → 商的一位1,做减法:\(11 - 10 = 1\)。
  5. 没有剩余的位。商 = 0101 = 101,余数 = 1

用十进制验证:\(11 \div 2 = 5\) 余 \(1\),且 \(101_2 = 5\),\(1_2 = 1\)。✓

更多二进制除法示例

每个示例都显示二进制长除法及其十进制验证,其关系始终为 \(\text{被除数} = \text{除数}\times Q + R\)。

示例1——非零余数:\(1011_2 \div 10_2\)

  1. 十进制等值:\(1011_2 = 11\),\(10_2 = 2\)。
  2. 长除法得商位101,剩余位1
  3. 结果:\(1011_2 \div 10_2 = 101_2 \;\text{余}\; 1_2\) → 十进制为 \(11 \div 2 = 5\;\text{余}\;1\)。
  4. 验证:\(2 \times 5 + 1 = 11\)。✓

示例2——除数大于被除数:\(100_2 \div 1000_2\)

  1. 十进制等值:\(100_2 = 4\),\(1000_2 = 8\)。
  2. 因为除数(8)大于被除数(4),所以永远不能整除,因此每一个商位都是0。
  3. 结果:\(100_2 \div 1000_2 = 0 \;\text{余}\; 100_2\) → 十进制为 \(4 \div 8 = 0\;\text{余}\;4\)。
  4. 验证:\(8 \times 0 + 4 = 4\)。✓ 当被除数小于除数时,商总是0,余数就是被除数本身。

示例3——完全整除并交叉验证:\(11110_2 \div 110_2\)

  1. 十进制等值:\(11110_2 = 30\),\(110_2 = 6\)。
  2. 依次取下各位,直到达到110 → 能整除一次;继续取下各位,每次能整除时都做一次减法 \(110\)。
  3. 结果:\(11110_2 \div 110_2 = 101_2 \;\text{余}\; 0\) → 十进制为 \(30 \div 6 = 5\;\text{余}\;0\)。
  4. 验证商:\(101_2 = 5\),检验 \(6 \times 5 + 0 = 30\)。✓ 因为余数为0,这个除法是精确的。

你可以用二进制转十进制转换器确认任何这些转换,并通过将商和除数相乘来验证最终检验。

二进制除法中的关键术语

被除数
被除的数——除法括号下方写的值。在 \(1011_2 \div 10_2\) 中,被除数是 \(1011_2\)。
除数
你要除以的数。在 \(1011_2 \div 10_2\) 中,除数是 \(10_2\)。除数不能为零。
除法的整数结果——除数能被整除进被除数的次数。写在括号上方,每步一位。
余数
移除最大整数商后剩下的量:\(R = \text{被除数} - \text{除数}\times Q\)。它总是小于除数。
二进制(二进制制)
一种只使用数字0和1的数字系统,其中每个位置值是2的幂(\(1, 2, 4, 8, \dots\))而不是10的幂。
单个二进制数字(0或1)——"binary digit"的缩写。
最低有效位 / 最高有效位
最低有效位是最右边的位(1位);最高有效位是最左边的位(最高位值)。二进制长除法从最高有效位向最低有效位处理位。
整数除法 / 向下取整除法
只保留商的整数部分并舍弃任何小数部分的除法——这正是二进制长除法及其余数所产生的。
模运算
仅返回除法的余数的运算(通常写作 mod%)。对于 \(1011_2 \div 10_2\),模运算的结果是 \(1_2\)。

常见问题

可以对带小数的二进制数做除法吗? 不行。本计算器只处理无符号整数二进制数,结果为整数商加余数。

如果除数比被除数还大怎么办? 此时商为 0,余数等于被除数。例如 \(10 \div 100\) 的结果是商为 0,余数为 10。

为什么还要显示十进制结果? 同时显示十进制等价值,便于你核对结果,也更容易理解二进制与十进制之间的换算关系。

最后更新: