透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

{
Binary Product (1010 × 11)
11110
二進位(基數 2)
第一個數(十進位) 10
第二個數(十進位) 3
乘積(十進位) 30
}

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

這個工具能將兩個二進位(base-2,即基數為 2)的數字相乘,並以二進位字串呈現乘積,同時附上兩個輸入值與結果的十進位對照。它是一款通用的數學工具——二進位運算在世界各地都遵循相同的規則,因此不受任何國家或地區的法規影響。

使用方式

在每個欄位中輸入一個二進位數字(只能使用 0 和 1)。系統會自動忽略其他字元,所以即使夾雜空格或多餘符號,也不會影響計算結果。按下計算後,即可同時看到二進位與十進位形式的乘積。

公式解析

二進位乘法可以用「位移相加(shift-and-add)」的方式逐位計算,但最簡潔的做法是:先把每個運算元轉成十進位,相乘後再把答案換回二進位。以公式表示為:

$$\text{P}_2 = \text{bin}\!\left(\text{dec}\!\left(\text{A}_2\right) \times \text{dec}\!\left(\text{B}_2\right)\right)$$

舉例來說,二進位 1010 等於十進位 10,因為 \(1\cdot 8 + 0\cdot 4 + 1\cdot 2 + 0\cdot 1 = 10\)。

範例演算

計算 1010 × 11。先進行轉換:\(1010_2 = 10\),\(11_2 = 3\)。在十進位下相乘:

$$10 \times 3 = 30$$

再把 30 換回二進位:

$$30 = 16 + 8 + 4 + 2 = 11110_2$$

因此 1010 × 11 的二進位結果為 11110

以部分積和最終二進位乘積算出的二進位直式乘法
二進位乘法採用與十進位直式乘法相同的移位相加方法。

如何手工計算二進制乘法

二進制乘法使用與十進制相同的移位相加長乘法程序,但因為乘數的每一位數字要麼是0要麼是1,所以簡單得多。乘以1會複製被乘數;乘以0會得到一行零。真正的工作只是按位位置左移每個部分積,然後用二進制進位規則將各行相加。

工作演練:\((1010)_2 \times (11)_2\):

  1. 設置運算數。被乘數\(A = 1010_2 = 10\),乘數\(B = 11_2 = 3\)。預期積為\(10 \times 3 = 30\)。
  2. 乘以最右邊的乘數位(第0位 = 1)。因為該位是1,複製被乘數:部分積\(= 1010\),左移0位。
  3. 乘以下一個乘數位(第1位 = 1)。該位是1,所以再次複製被乘數並將其左移1位(在末尾附加一個零):部分積\(= 10100\)。
  4. 刪除任何零行。如果乘數位是0,其整行將是零,可以跳過。這裡兩行都保留。
  5. 用二進制加法相加部分積。按位值對齐並相加,當兩個1相遇時進位(\(1+1 = 10\),寫0進1):
    \(\;\;\;01010\)
    \(+\,10100\)
    \(=\,11110\)
  6. 讀取結果。二進制積為\((11110)_2\),等於十進制的30——確認了\(10 \times 3 = 30\)。您可以驗證加法步驟本身為11110

簡言之:為每個乘數位生成一行移位後的行(0位對應零行),然後用二進制加法求和所有行。\(m\)位數和\(n\)位數的完整積永遠不超過\(m+n\)位。

更多工作示例

每個示例都展示了兩個輸入的十進制轉換、移位相加部分積以及最終的二進制積。

示例1——\(111_2 \times 101_2\)(7 × 5 = 35)

  1. 轉換:\(111_2 = 7\)、\(101_2 = 5\)。
  2. 乘數位(從右到左)分別為1、0、1:
    • 第0位 = 1 \(\Rightarrow 111\)(移位0)
    • 第1位 = 0 \(\Rightarrow\)零行,跳過
    • 第2位 = 1 \(\Rightarrow 11100\)(移位2)
  3. 相加:\(00111 + 11100 = 100011\)。
  4. 結果:\((100011)_2 = \)35,符合\(7 \times 5 = 35\)。

示例2——\(1100_2 \times 1010_2\)(12 × 10 = 120)

  1. 轉換:\(1100_2 = 12\)、\(1010_2 = 10\)。
  2. 乘數\(1010_2\)的位(從右到左)分別為0、1、0、1:
    • 第0位 = 0 \(\Rightarrow\)跳過
    • 第1位 = 1 \(\Rightarrow 11000\)(移位1)
    • 第2位 = 0 \(\Rightarrow\)跳過
    • 第3位 = 1 \(\Rightarrow 1100000\)(移位3)
  3. 相加:\(0011000 + 1100000 = 1111000\)。
  4. 結果:\((1111000)_2 = \)120,符合\(12 \times 10 = 120\)。

示例3——\(1_2 \times 1101_2\)(單位乘數,1 × 13 = 13)

  1. 轉換:\(1_2 = 1\)、\(1101_2 = 13\)。
  2. 乘數\(1\)有一個單位,其值等於1,因此恰好有一個部分積,無需移位:\(1101\)。
  3. 只有一行,所以無需相加。
  4. 結果:\((1101)_2 = 13\)。在二進制中將任何數乘以\(1\)都使其保持不變,就像在十進制中一樣。

常見問題

如果我輸入了非二進位的數字怎麼辦?計算前,系統會先剔除 0 和 1 以外的所有數字,因此只會採用有效的二進位位元。

能處理很大的數字嗎?可以——輸入值會以 64 位元整數進行處理,所以即使是很長的二進位字串,只要在此上限內都能維持精準。

為什麼要顯示十進位數值?對照十進位形式能讓你驗證轉換是否正確,並清楚了解究竟是哪些數字在相乘。

最後更新: