この2進数計算機でできること
この2進数計算機を使えば、2つの2進数(0と1の数字だけで表す、基数2の数)の四則演算を手軽に行えます。2つの2進数を入力し、足し算・引き算・掛け算・割り算の4種類から1つを選ぶだけで、答えを2進数とその10進数換算の両方で表示し、さらに計算の流れもわかりやすく示します。
入力項目について
- 1つ目の2進数 – 左側の値です。例:
1010 - 演算 – 足し算・引き算・掛け算・割り算から選びます。
- 2つ目の2進数 – 右側の値です。例:
11
入力できるのは0と1の数字だけです。それ以外の文字が含まれている場合、計算機は結果の代わりに「無効な2進数の入力」と表示します。
計算の仕組み
この計算機は、内部でビットごとの計算を行っているわけではありません。次の3つのシンプルな手順で答えを導きます。
$$\text{Result}_2 = \left( \text{Binary}_1 \right)_2 + \left( \text{Binary}_2 \right)_2$$
$$\text{Result}_2 = \left( \text{Binary}_1 \right)_2 - \left( \text{Binary}_2 \right)_2$$
$$\text{Result}_2 = \left( \text{Binary}_1 \right)_2 \times \left( \text{Binary}_2 \right)_2$$
$$\text{Result}_2 = \left\lfloor \frac{\left( \text{Binary}_1 \right)_2}{\left( \text{Binary}_2 \right)_2} \right\rfloor$$
- 10進数に変換: それぞれの2進数の文字列を、基数2の整数として読み取ります。
- 演算を適用: 2つの10進数の値で足し算・引き算・掛け算・整数の割り算を行います。割り算は整数(切り捨て)方式なので、余りは切り捨てられます。また、0で割ろうとした場合は「0による除算」と表示されます。
- 再び2進数に変換: 計算結果を10進数から2進数の文字列に変換して表示し、あわせて10進数の結果も示します。
計算例
たとえば、1つ目の2進数を1010、演算を掛け算、2つ目の2進数を11とします。
1010は10進数で10。11は10進数で3。- \(10 \times 3 = 30\)。
- 30を2進数に戻すと
11110。
したがって計算機は、結果を11110(2進数)と30(10進数)で表示します。
二進法・十進法変換表
二進法では、すべての桁(ビット)は2の累乗を表します。二進数を右から左に読むと、桁の値は \(2^0=1,\ 2^1=2,\ 2^2=4,\ 2^3=8,\ 2^4=16,\ \dots\) です。十進法での等価値を見つけるには、1が現れる場所の桁の値をすべて足します。
一般的な値
| 二進法 | 十進法 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 10 | 2 |
| 11 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | 10 |
| 1011 | 11 |
| 1100 | 12 |
| 1101 | 13 |
| 1110 | 14 |
| 1111 | 15 |
桁の値(2の累乗)
| 二進法 | 累乗 | 十進法の重み |
|---|---|---|
| 1 | \(2^0\) | 1 |
| 10 | \(2^1\) | 2 |
| 100 | \(2^2\) | 4 |
| 1000 | \(2^3\) | 8 |
| 10000 | \(2^4\) | 16 |
| 100000 | \(2^5\) | 32 |
| 1000000 | \(2^6\) | 64 |
| 10000000 | \(2^7\) | 128 |
| 100000000 | \(2^8\) | 256 |
さらに詳しい例
加算:1011 + 110
各オペランドを十進法に変換し、加算してから、二進法に戻します。
- \(1011_2 = 8+2+1 = 11_{10}\)
- \(110_2 = 4+2 = 6_{10}\)
- 加算:\(11 + 6 = 17_{10}\)
- 戻す:\(17_{10} = 16+1 = 10001_2\)
桁ごとの加算でもこれを確認できます — \(1011 + 0110\) を加算すると上位の桁にキャリーが発生し、10001(十進法で17)が得られます。
負の結果が出る減算:10 − 111
第2の数が大きい場合、結果は負になります。
- \(10_2 = 2_{10}\)
- \(111_2 = 7_{10}\)
- 減算:\(2 - 7 = -5_{10}\)
- 絶対値を戻す:\(5_{10} = 101_2\)なので、答えは \(-101_2\) です
\(10 - 111\) の結果は二進法で-101(十進法で \(-5\))です。
余りを切り捨てる整数除算:111 ÷ 10
二進法の整数除算は商のみを保持し、余りを捨てます。
- \(111_2 = 7_{10}\)
- \(10_2 = 2_{10}\)
- 除算:\(7 \div 2 = 3\) 余り \(1\);余りの \(1\) は捨てられます
- 商を戻す:\(3_{10} = 11_2\)
つまり \(111 \div 10 = \)11で二進法(十進法で3、余り1は捨てられた)です。
重要用語の説明
- 二進法(基数2)
- 0と1のみの桁を使う数体系です。各位置は2の累乗を表し、0~9の桁を使う十進法(基数10)体系とは異なります。
- ビット
- 単一の二進桁 — 0または1です。コンピュータの最小データ単位です。
- 最上位ビット(MSB)
- 二進数の左端のビット。最大の桁の値を持ち、数値の大きさに最も大きな影響を与えます。
- 最下位ビット(LSB)
- 右端のビット。桁の値は \(2^0=1\) です。最小の影響を持ち、その数が奇数か偶数かを決定します。
- キャリー
- 列内の2つのビットの合計が2以上の場合、超過分は次の上位の列に繰り上げられます。二進法では \(1+1=10\) なので、その列は0を表示し、1が左に繰り上げられます。
- 桁の値
- 各桁位置に割り当てられた重み。2の累乗に等しく、右から左へ読むと \(1, 2, 4, 8, 16, \dots\) です。
- 整数(切り捨て)除算
- 整数商のみを返し、余りを捨てる除算です。たとえば \(7 \div 2 = 3\) で、余りの1は捨てられます。
- 十進法での等価値
- 二進数の基数10の値。1が現れる場所の桁の値を合計して求めます — たとえば \(1011_2 = 8+2+1 = 11_{10}\)。
よくある質問
割り算で余りはどうなりますか? 割り算は整数ベースで行うため、小数部分は切り捨てられます。たとえば111(7)÷10(2)の答えは11(3)となり、3.5にはなりません。
マイナスの結果になることはありますか? はい。小さい数から大きい数を引くと10進数の値はマイナスになり、それが表示される2進数の表記にも反映されます。
なぜ「無効な2進数の入力」と表示されるのですか? 入力欄に使えるのは0と1の数字だけだからです。スペースや小数点、2〜9などの数字が含まれているとこのメッセージが出ますので、入力内容をもう一度確認してください。