二進数掛け算計算機の使い方
二進数掛け算計算機は、2つの二進数の積を求め、二進法の筆算で使う部分積を確認できる学習・検算用ツールです。2つの入力欄に値を入れると、二進数掛け算計算機がバイナリ乗算の結果、10進数での対応値、乗数の各ビットに応じて左シフトした部分積をブラウザ内ですぐに表示します。
- 1つ目の二進数を入力 — 被乗数として、
0と1だけからなる整数の二進数を入力します。たとえば1011です。 - 2つ目の二進数を入力 — 乗数となる二進数を入力します。空白、アンダースコア(
_)、ハイフン(-)は区切り文字として使用できます。たとえば1 101、1_101、1-101はいずれも1101として扱われます。 - 積と10進数値を確認 — 二進数の積に加え、2つの入力値と積を10進数でも確認できます。
- 部分積を確認 — 表には乗数の各ビットと、その位置に応じて左シフトされた部分積が表示されます。乗数ビットが
0なら部分積は0、1なら被乗数を必要な桁数だけ左へシフトした値です。
0と1以外の数字、英字、小数点、符号は入力できません。負数、二進小数、固定ビット幅の2の補数表現には対応していません。
計算式と仕組み — 二進数掛け算計算機
二進数掛け算計算機では、シフト加算方式(shift-and-add)でバイナリ乗算を説明します。乗数の右端をビット位置0とし、1であるビットごとに被乗数を左へシフトして、そのすべての部分積を足し合わせます。
A × B = Σ (B[k] が 1 のときの A × 2^k)
例: 1011 × 1101
乗数の右端から:
k = 0、ビット 1: 1011
k = 1、ビット 0: 0
k = 2、ビット 1: 101100
k = 3、ビット 1: 1011000
1011 + 0 + 101100 + 1011000 = 10001111
二進法では1 × 1 = 1、それ以外の1ビット同士の掛け算は0です。そのため、乗数の1は被乗数をその桁位置だけ左へずらした部分積を作り、0は何も加えません。最後に部分積を二進数で加算する際、同じ桁に1が2つ以上あれば桁上がりが発生します。上の例では1011₂ = 11₁₀、1101₂ = 13₁₀、積の10001111₂ = 143₁₀です。
このツールはJavaScriptのBigIntで整数演算を行うため、固定の桁数・精度上限は設けていません。実用上の上限はブラウザのメモリと処理能力です。先頭の0は入力できますが、計算結果は不要な先頭の0を省いた二進数で表示されます。
二進数掛け算計算機の利用シーン
二進数掛け算計算機は、次のような場面で二進数の掛け算を確認するのに役立ちます。
- 二進法・情報科学の学習 — 二進数の筆算、部分積、桁上がりが積へつながる流れを確認する。
- デジタル回路設計 — 乗算器やシフト加算回路で生成される部分積の基礎を理解する。
- プログラミング課題 — ビット列を使うバイナリ乗算の実装前後に、期待値を検算する。
- 組み込み・低レベル開発 — レジスタ値を二進数として扱う際に、符号なしの乗算結果をすばやく確認する。
- 試験対策 — 2進数の掛け算の問題で、途中の部分積と二進数加算による桁上がりを見直す。
このツールは符号なし整数の二進数掛け算を計算・説明するものです。固定幅レジスタでのオーバーフロー、符号付き整数、2の補数、浮動小数点、Boothアルゴリズムなどの動作を再現するものではありません。結果はローカルで再現可能な検算に便利ですが、実際のハードウェアやプログラムでは対象のビット幅と符号規則も確認してください。