バイナリ変換
2進数 --> 10進数:
- 右から左の数字
N
に 2 の累乗を乗算しN
、加算して 10 進数になります。 - たとえば、2 進数: 0011、対応する 10 進表現は0 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 = 3 0×2^3+0×2^2+1×2 です。 ^1 +1×2^0=30×23+0×22+1×21+1×20=3は、 10 進数の3 33
10 進数 --> 2 進数:
-
短い分割
- 10 進数を 2 で割った余りを記録します。
- 引き続き商を 2 で割り、余りを再度記録します。
- 商が 0 になるまでこのプロセスを繰り返します。
- 記録された余りを逆順に並べると、対応する 2 進数が得られます。
たとえば、10 進数 23 を 2 進数に変換するには、次のようにします。
- 23 ÷ 2 = 11 余り 1
- 11 ÷ 2 = 5 余り 1
- 5 ÷ 2 = 2 余り 1
- 2 ÷ 2 = 1 余り 0
- 1 ÷ 2 = 0 余り 1
次に、記録した余りを逆順に並べます: 10111
2進加算演算
バイナリ加算のルールは次のとおりです。
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 0、キャリーが発生します
例えば:
1 0 1 1 (1011)
+ 0 1 0 1 (0101)
------------
1 1 0 0 (1100)
- 右端のビットから順に、1+1=0となりキャリーが発生します。このキャリーは加算結果の次のビットに加算する必要があります。順番に合計すると、最終結果は 1100 になります。
- 加算される 2 つの 2 進数の桁が異なる場合は、加算する前にそれらの桁を揃える必要があります。短い 2 進数の左側をゼロで埋めて、加算する前にビット数を等しくすることができます。
2進減算演算
減算ステップ
- バイナリ減算は、減算を加算に変換することで実行できます。加算はキャリーを考慮して 2 の補数形式で実行されます。
バイナリ減算演算の手順は次のとおりです。
-
減数を補数形式に変換します (減数が負の場合)。
- 減数が正の場合、変換は必要ありません。
- 減数が負の場合は、補数形式に変換する必要があります。変換方法は、まず絶対値のバイナリ表現を取得し、次にそれをビットごとに反転し (0 が 1 になり、1 が 0 になります)、最後に 1 を加算します。
-
2 の補数形式を使用した減数と被減数の 2 項加算。
- 2 進加算と同じ手順で、最下位ビット (右端) からビットごとに加算し、キャリーを処理します。
-
結果の最上位ビット (左端のビット) をチェックして、その符号を決定します。
- 最上位ビットが 1 の場合、結果は負の数になります。
- 最上位ビットが 0 の場合、結果は正の数になります。
-
結果が負の場合、結果を正の形式に変換します。
- 結果の 2 の補数形式の最上位ビットを反転して (0 が 1 になり、1 が 0 になります)、補数を取得します。
- 補数に 1 を加算すると、正の形式が得られます。
-
最終的な結果は減算の結果です。
減算の例
-5
加算の結果を計算したいとします1
。
-5 + 1 = ?
-
被减数(-5)
2 の補数形式に変換されます。まず、その補数を取得します。
1010
次に、その逆数に 1 を加えます。
1011
したがって、-5 の補数は次のようになります。
1011
-
1
のバイナリ表現は次のとおりです。0001
ここで、バイナリ加算演算を実行します。
1011 (-5)
+ 0001 (+1)
----------
右端のビットから追加します。
- 最初のビット (最下位ビット): 1 + 1 = 10。現在のビットに 0 を書き込み、キャリーとして 1 を書き込みます。
1011 (-5)
+ 0001 (+1)
----------
0
- 2 番目のビット: 1 (キャリー) + 1 + 0 = 10。現在のビットに 0 を書き込み、キャリーとして 1 を書き込みます。
1011 (-5)
+ 0001 (+1)
----------
00
- 3 番目のビット: 1 (キャリー) + 0 + 0 = 1。現在のビットに 1 を書き込みます。
1011 (-5)
+ 0001 (+1)
----------
100
- 4 番目のビット: 1 + 0 = 1。現在のビットに 1 を書き込みます。
1011 (-5)
+ 0001 (+1)
----------
1100
- 最終結果の最上位ビットは 1 で、結果が負の数であることを示します。つまり、1100 は負の数です。
次に、結果を肯定形式に変換する必要があります。
- 1 の補数を取得します
0011
。 - 1 の補数を追加すると次のようになります
0100
。
最後に: を取得します-5 + 1 = -4
。