通过MCP连接 →

输入计算

数学公式

广告

结果

{
Binary Product (1010 × 11)
11110
二进制(基数为 2)
第一个数(十进制) 10
第二个数(十进制) 3
乘积(十进制) 30
}

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

这款工具可以将两个二进制(即逢二进一、基数为 2)数字相乘,并以二进制字符串的形式返回乘积,同时给出两个输入值和计算结果对应的十进制数值。它是一款通用的数学工具——二进制运算在世界各地的规则都完全一致,因此不涉及任何国家或地区的特定限制。

使用方法

在每个输入框中输入一个二进制数(只能包含数字 0 和 1)。其他字符会被自动忽略,所以即使夹杂了空格或多余符号,也不会影响计算结果。点击「计算」按钮,即可同时看到二进制和十进制两种形式的乘积。

公式解析

二进制乘法可以采用「移位相加」的方式逐位计算,但最简洁的做法是:先将每个操作数转换为十进制,相乘后再把结果转换回二进制。用公式表示就是:

$$\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 位整数进行处理,所以即使是很长的二进制字符串,在该上限范围内也能保持准确。

为什么要显示十进制数值? 同时展示十进制形式,可以帮助你核对转换是否正确,并清楚地了解究竟是哪两个数在相乘。

最后更新: