二進数掛け算計算機
二進数をすぐに乗算し、手順ごとの解法と自動十進変換を表示します。
2つの二進数を入力して「計算」をクリックすると、二進数の積と十進数での値を確認できます。
二進数掛け算計算機
二進数をすぐに乗算し、手順ごとの解法と自動十進変換を表示します。
二進数の掛け算について
二進数の掛け算は十進数の筆算と同じ桁位置の考え方に従いますが、1桁ごとの規則ははるかに単純です。十進数では各桁が 0–9 のいずれかになり、10×10 の九九を覚える必要があります。二進数では各桁は 0 または 1 だけなので、規則は 0 × 0 = 0、0 × 1 = 0、1 × 0 = 0、1 × 1 = 1 のみです。難しさは個々のビットを掛けることではなく、部分積を正しくシフトして足し合わせることにあります。
二進数の筆算は次のように進みます。2つの数を上下に書き、一方を被乗数、もう一方を乗数とします。乗数の右端(最下位)ビットから始めて、各ビットに対して部分積を作ります。乗数ビットが 1 の場合、部分積は被乗数をそのビット位置だけ左にシフトしたものです。ビットが 0 の場合、部分積はすべて 0 です。すべての部分積を二進加算で合計し、必要に応じて桁上がりを伝播させます。最終的な和が二進数の積です。
たとえば 1011 に 101 を掛ける場合、101 の右端ビットは 1 なので、最初の部分積は 1011(0 桁シフト)です。中央のビットは 0 なので、1 桁シフトした 0000(文脈上は実質 00000)になります。左端ビットは 1 なので、3つ目の部分積は 1011 を 2 桁シフトした 101100 です。1011 + 0000 + 101100 = 110111 となり、これは十進数で 55、つまり 11 × 5 = 55 であることを確認できます。
二進数の掛け算はハードウェアに直接対応します。シフト加算アルゴリズムは、すべての CPU の整数乗算ユニットや FPGA、カスタム ASIC に実装されています。現代のプロセッサは Booth のアルゴリズム、Wallace 木、Dadda 乗算器などの最適化手法を使い、部分積の数を減らして最終加算を高速化します。基本的なシフト加算の仕組みを理解すると、ソフトウェアエンジニアは性能、オーバーフロー、そしてコンピューティングにおけるすべての整数演算を支える二進表現について考えやすくなります。
オーバーフローは重要な注意点です。両方のオペランドが n ビット整数の場合、積には最大 2n ビットが必要になることがあります。32 ビット × 32 ビットの乗算は 64 ビットの結果を生成する可能性があり、ハードウェアの乗算命令が積の上位半分と下位半分を別々に提供することが多いのはまさにこのためです。この計算機は任意長の二進整数に対応し、切り捨てずに完全な積を表示します。
二進数掛け算の例
基本ケース、2の累乗、大きなオペランドを扱う例です。
| 演算 | 二進数の結果 | 十進数での確認 |
|---|---|---|
| 1011 × 101 | 110111 | 11 × 5 = 55 ✓。部分積: 1011 + 000000 + 101100 = 110111。 |
| 1101 × 1 | 1101 | 13 × 1 = 13 ✓。1 を掛けると、被乗数は常にそのまま返ります。 |
| 1000 × 100 | 100000 | 8 × 4 = 32 ✓。2の累乗を掛けることは左シフトと同じです。 |
| 11011 × 1101 | 101011111 | 27 × 13 = 351 ✓。大きなオペランドでは、筆算手順全体がよく分かります。 |
二進数掛け算計算機の使い方
- 「1つ目の二進数」欄に、0 と 1 だけを使って最初の二進数(被乗数)を入力します。
- 「2つ目の二進数」欄に、2つ目の二進数(乗数)を入力します。
- 個々の部分積と加算過程を見たい場合は、「手順ごとの解法を表示」をオンにします。
- 「掛け算を計算」をクリックします。二進数の積と十進数での値が結果ボックスに表示されます。
- リセットをクリックすると両方の欄がクリアされ、新しい値でやり直せます。
二進数掛け算のFAQ
二進数の掛け算は十進数の掛け算とどう違いますか?
アルゴリズム自体は同じで、部分積をシフトして足し合わせます。ただし二進数では桁の掛け算が非常に単純で、任意のビットに 0 を掛けると 0、1 を掛けるとそのビット自身になります。そのため二進数の掛け算はハードウェアで実装しやすく、すべての CPU が整数演算を二進数で行います。一方で、同じ値を表すには二進数の方が多くの桁を必要とします。
なぜ2の累乗を掛けることは左シフトと同じなのですか?
二進数では、2 を掛けることは 0 を1つ追加すること(すべてのビットを1桁左へシフトすること)に相当します。これは十進数で 10 を掛けると 0 が追加されるのと同じです。2ⁿ を掛けると n 桁左へシフトします。たとえば 101(5)を 2 桁左シフトすると 10100(20)になり、5 × 4 = 20 です。このため CPU やコンパイラは、2の累乗による乗算を高速なシフト命令に置き換えます。
この計算機は小数部を含む二進数を掛けられますか?
この計算機は整数の二進数のみを扱います。二進小数を掛けるには、仮数部を整数として乗算し、その後で二進小数点を調整します。積の二進小数点は、両方のオペランドに含まれる小数ビット数の合計になる位置に置きます。たとえば 1.01 × 10.1 は、101 × 101 の整数積 11001 に対して 2+1=3 個の小数ビットを持つため、11.001 になります。
結果の最大サイズはどれくらいですか?
被乗数が m ビット、乗数が n ビットの場合、積は最大で m + n ビットになります。たとえば 2つの 4 ビット数は最大 8 ビットの結果を生成できます。この計算機は任意長の入力を処理し、切り捨てずに完全な二進数の積を表示します。
二進数の掛け算結果を確認するには?
両方のオペランドを十進数に変換し、十進数で掛け算してから、その積を二進数に戻して比較します。この計算機が表示する十進数での値は、まさにその確認を行うものです。別の方法として、各部分積を個別に確認し、その後で二進加算を列ごとに検証できます。
オペランドの順序は重要ですか?
いいえ。二進数の掛け算は交換法則を満たします。A × B = B × A です。ただし、生成される部分積の数は乗数のビット数に依存するため、オペランドを入れ替えると、手順表示で示される中間ステップは変わることがあります。最終的な積は同じです。