コンピュータの構成原理 | バイナリ コードの理解

バイナリ変換

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 進数:

  • 短い分割

    1. 10 進数を 2 で割った余りを記録します。
    2. 引き続き商を 2 で割り、余りを再度記録します。
    3. 商が 0 になるまでこのプロセスを繰り返します。
    4. 記録された余りを逆順に並べると、対応する 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 の補数形式で実行されます。

バイナリ減算演算の手順は次のとおりです。

  1. 減数を補数形式に変換します (減数が負の場合)。

    • 減数が正の場合、変換は必要ありません。
    • 減数が負の場合は、補数形式に変換する必要があります。変換方法は、まず絶対値のバイナリ表現を取得し、次にそれをビットごとに反転し (0 が 1 になり、1 が 0 になります)、最後に 1 を加算します。
  2. 2 の補数形式を使用した減数と被減数の 2 項加算。

    • 2 進加算と同じ手順で、最下位ビット (右端) からビットごとに加算し、キャリーを処理します。
  3. 結果の最上位ビット (左端のビット) をチェックして、その符号を決定します。

    • 最上位ビットが 1 の場合、結果は負の数になります。
    • 最上位ビットが 0 の場合、結果は正の数になります。
  4. 結果が負の場合、結果を正の形式に変換します。

    • 結果の 2 の補数形式の最上位ビットを反転して (0 が 1 になり、1 が 0 になります)、補数を取得します。
    • 補数に 1 を加算すると、正の形式が得られます。
  5. 最終的な結果は減算の結果です。

減算の例

-5加算の結果を計算したいとします1

-5 + 1 = ?
  1. 被减数(-5)2 の補数形式に変換されます

    まず、その補数を取得します。1010

    次に、その逆数に 1 を加えます。1011

    したがって、-5 の補数は次のようになります。1011

  2. 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. 1 の補数を取得します0011
  2. 1 の補数を追加すると次のようになります0100

最後に: を取得します-5 + 1 = -4

表: 2 進加算

(C:\Users\22319\AppData\Roaming\Typora\typora-user-images\image-20230615163731785.png)]

参考文献

おすすめ

転載: blog.csdn.net/YuvalNoah/article/details/131234936