透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

商(二進位)
110
remainder 0
被除數(十進位) 12
除數(十進位) 2
商(十進位) 6
餘數(十進位) 0

什麼是二進位除法計算機?

這個工具能將一個二進位(base-2)數除以另一個二進位數,並同時以二進位與十進位顯示餘數。由於用手算二進位長除法很容易出錯,計算機會先把你輸入的數字轉成十進位,進行整數除法,再把結果換算回二進位,省去繁瑣計算。

使用方式

在第一個欄位輸入被除數(要被除的那個數),在第二個欄位輸入除數,兩者都只能使用 0 和 1 這兩個數字。按下計算,即可看到商與餘數。除數不可以是零,因為除以零在數學上沒有定義。

公式說明

假設 \(A\) 與 \(B\) 是輸入的二進位數,計算機會先求出 \(A_{10} = \text{parseBinary}(A)\) 與 \(B_{10} = \text{parseBinary}(B)\)。整數商為 $$Q = \left\lfloor \frac{A_{10}}{B_{10}} \right\rfloor,$$ 餘數為 $$R = A_{10} \bmod B_{10}.$$ 接著再把 \(Q\) 與 \(R\) 換算回二進位。這正是電腦執行無號整數除法的運作方式。

長除法版面,顯示二進位除數、被除數、商和餘數的位置
二進位長除法將結果分為商和餘數。

實例演算

以 \(1100_2\) 除以 \(10_2\) 為例。換成十進位後,\(1100_2 = 12\),\(10_2 = 2\)。於是 $$12 \div 2 = 6 \;\text{R}\; 0.$$ 再換算回二進位:\(6 = 110_2\),\(0 = 0_2\)。所以 $$1100 \div 10 = 110 \;\text{R}\; 0.$$

逐步進行的二進位長除法,含移位與相減運算
每一步進行比較、相減並落下下一位。

如何手工進行二進位數字除法

二進位長除法的運作方式完全相同於十進位長除法,但實際上更簡單:在每一步,除數要麼恰好整除當前位元(寫下1),要麼不能(寫下0)。沒有乘法表需要記憶——你只需將除數乘以 0 或 1。

計算 \(\text{被除數}_2 \div \text{除數}_2 = Q \;\text{R}\; 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{R}\; 1_2\) → 十進位中 \(11 \div 2 = 5\;\text{R}\;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{R}\; 100_2\) → 十進位中 \(4 \div 8 = 0\;\text{R}\;4\)。
  4. 驗證:\(8 \times 0 + 4 = 4\)。 ✓ 當被除數小於除數時,商始終為 0,餘數就是被除數本身。

例子 3 — 整除及驗證:\(11110_2 \div 110_2\)

  1. 十進位等值:\(11110_2 = 30\)、\(110_2 = 6\)。
  2. 移下位元直到到達 110 → 能整除一次;繼續移下位元,每次都在能整除時進行相減。
  3. 結果:\(11110_2 \div 110_2 = 101_2 \;\text{R}\; 0\) → 十進位中 \(30 \div 6 = 5\;\text{R}\;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 的數字系統,其中每個位置值是二的冪(\(1, 2, 4, 8, \dots\))而不是十的冪。
位元
單個二進位數字(0 或 1)——「二進位數字」的簡稱。
LSB / MSB
最低有效位是最右邊的位元(1 的位置);最高有效位是最左邊的位元(最高位置值)。二進位長除法從 MSB 向 LSB 處理位元。
整數除法 / 向下取整
只保留整數商並捨棄任何小數部分的除法——正是二進位長除法與其餘數一起產生的結果。
模運算
只返回除法餘數的運算(通常寫為 mod%)。對於 \(1011_2 \div 10_2\),模運算結果是 \(1_2\)。

常見問題

可以計算有小數的二進位數嗎?不行,這個計算機只處理無號的整數二進位數,並回傳整數商加上餘數。

如果除數比被除數大會怎樣?此時商為 0,餘數等於被除數。例如 \(10 \div 100\) 的結果是商為 0、餘數為 10。

為什麼也要顯示十進位?同時看到十進位的對應值,能方便你驗算結果,也更容易理解進位轉換的過程。

最後更新: