二进制乘法计算器
即时相乘二进制数,提供分步解答并自动转换为十进制。
输入两个二进制数,点击计算,即可查看二进制乘积及其十进制等值。
二进制乘法计算器
即时相乘二进制数,提供分步解答并自动转换为十进制。
关于二进制乘法
二进制乘法遵循与十进制竖式乘法相同的位值逻辑,但单个数字的规则要简单得多。在十进制中,每个数字可以是 0–9,因此需要记住 10×10 的乘法表。在二进制中,每一位不是 0 就是 1,所以规则只有:0 × 0 = 0、0 × 1 = 0、1 × 0 = 0、1 × 1 = 1。复杂之处不在于相乘单个比特,而在于正确移位并相加各个部分积。
二进制竖式乘法的过程如下。把两个数上下写好,将一个指定为被乘数,另一个指定为乘数。从乘数最右侧(最低有效位)开始,逐位生成部分积:如果乘数位为 1,部分积就是被乘数按该位的位置向左移位;如果该位为 0,部分积就是全 0。然后使用二进制加法把所有部分积相加,并按需传递进位。最终的和就是二进制乘积。
例如,计算 1011 乘以 101:101 最右侧的位是 1,所以第一个部分积是 1011(左移 0 位)。中间位是 0,得到左移 1 位的 0000(在上下文中相当于 00000)。最左侧的位是 1,所以第三个部分积是 1011 左移 2 位,即 101100。相加 1011 + 0000 + 101100 = 110111,十进制为 55,验证了 11 × 5 = 55。
二进制乘法可以直接映射到硬件:移位加法算法存在于每个 CPU 的整数乘法单元,也用于 FPGA 和定制 ASIC。现代处理器会使用 Booth 算法、Wallace 树、Dadda 乘法器等优化变体,以减少部分积数量并加快最终加法。理解基础的移位加法过程,有助于软件工程师推理性能、溢出,以及支撑计算机中所有整数运算的二进制表示。
溢出是一个关键问题。如果两个操作数都是 n 位整数,它们的乘积最多可能需要 2n 位。32 位 × 32 位乘法可能产生 64 位结果,硬件乘法指令也常常正是为此提供乘积的高半部分和低半部分。此计算器支持任意长度的二进制整数,并会显示完整乘积而不截断。
二进制乘法示例
涵盖基础情况、二的幂以及更大操作数的详细示例。
| 运算 | 二进制结果 | 十进制校验 |
|---|---|---|
| 1011 × 101 | 110111 | 11 × 5 = 55 ✓。部分积:1011 + 000000 + 101100 = 110111。 |
| 1101 × 1 | 1101 | 13 × 1 = 13 ✓。乘以 1 总会原样返回被乘数。 |
| 1000 × 100 | 100000 | 8 × 4 = 32 ✓。乘以二的幂等同于左移。 |
| 11011 × 1101 | 101011111 | 27 × 13 = 351 ✓。较大的操作数展示了完整的竖式乘法过程。 |
如何使用二进制乘法计算器
- 在“第一个二进制数”字段中,仅使用 0 和 1 输入第一个二进制数(被乘数)。
- 在“第二个二进制数”字段中输入第二个二进制数(乘数)。
- 如果想查看各个部分积和加法过程,请开启“显示分步解答”。
- 点击“计算乘法”。二进制乘积及其十进制等值会显示在结果框中。
- 点击重置可清空两个字段,并用新值重新开始。
二进制乘法常见问题
二进制乘法与十进制乘法有什么不同?
算法是一样的——移位并相加部分积——但二进制中的数字乘法非常简单:任意位乘以 0 得 0,任意位乘以 1 得其本身。这使二进制乘法更容易在硬件中实现,也正是所有 CPU 都用二进制执行整数运算的原因。代价是二进制数需要更多位来表示相同的值。
为什么乘以二的幂等于左移?
在二进制中,乘以 2 等同于追加一个 0(把所有位左移一位),就像十进制数乘以 10 会追加一个 0。乘以 2ⁿ 会左移 n 位。例如,101(5)左移 2 位变成 10100(20),而 5 × 4 = 20。这就是 CPU 和编译器会用快速移位指令替代乘以二的幂的原因。
这个计算器能相乘带小数部分的二进制数吗?
此计算器仅适用于整数二进制数。要相乘二进制小数,可先对有效数使用整数乘法,然后调整二进制小数点:乘积的小数点位置应使小数位总数等于两个操作数小数位数之和。例如,1.01 × 10.1 = 101 × 101 的整数乘积 11001,共有 2+1=3 个小数位,因此得到 11.001。
结果的最大长度是多少?
如果被乘数有 m 位、乘数有 n 位,乘积最多有 m + n 位。例如,两个 4 位数最多可产生 8 位结果。此计算器支持任意长度输入,并显示完整二进制乘积而不截断。
如何验证二进制乘法结果?
把两个操作数都转换为十进制,在十进制中相乘,再把十进制乘积转换回二进制并比较。此计算器显示的十进制等值正是用于这种校验。也可以逐个验证每个部分积,然后按列检查二进制加法。
操作数的顺序重要吗?
不重要。二进制乘法满足交换律:A × B = B × A。不过,生成的部分积数量取决于乘数的位数,因此交换操作数可能会改变分步视图中显示的中间步骤,但最终乘积相同。