2進数の算術: 加算と減算

繰り上がりと繰り下がりの操作を含む2進数の加算と減算を習得。ステップごとの解説、オーバーフロー検出、CPU の仕組みとの関連も学べます。

Binary (Base 2)Binary (Base 2)Arithmetic

詳細な説明

2進数の算術は10進数の算術と同じルールに従いますが、使う数字は 0 と 1 の2つだけです。2進数の加算と減算を理解することは、CPU がハードウェアレベルでどのように計算を行うかを把握するために不可欠です。

2進数の加算ルール:

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10(0 で繰り上がり 1)
  • 1 + 1 + 1 = 11(1 で繰り上がり 1)

例 --- 1011 + 0110 の加算:

  Carry: 1 1 1 0
         1 0 1 1
       + 0 1 1 0
       ---------
       1 0 0 0 1

検証: 11 + 6 = 17、10001₂ = 17₁₀。正解です。

繰り下がりを使った2進数の減算:

  • 0 - 0 = 0
  • 1 - 0 = 1
  • 1 - 1 = 0
  • 0 - 1 = 1(次の桁から1を借りる)

例 --- 1100 - 0101 の減算:

  Borrow: 0 1 1 0
          1 1 0 0
        - 0 1 0 1
        ---------
          0 1 1 1

検証: 12 - 5 = 7、0111₂ = 7₁₀。正解です。

オーバーフロー検出:

固定幅の2進数システム(8ビットなど)では、結果が利用可能なビット数を超えるとオーバーフローが発生します。符号なし8ビット加算では、結果が 255 を超えるとオーバーフローになります。2の補数を使った符号付き数の場合、2つの正の数を足して負の結果になる場合(またはその逆)にオーバーフローが発生します。CPU はこれらの条件を示す特殊なフラグ(キャリーフラグ、オーバーフローフラグ)を設定し、プログラマーは条件分岐命令を使ってこれらを確認できます。

2進数の乗算は10進数の筆算と同じシフト・加算技法を使い、CPU ハードウェアが効率的に実装するシフトと加算の連続です。

ユースケース

CPU 設計者や組み込みシステムプログラマーは、算術論理装置(ALU)の設計がキャリー伝播とオーバーフローを正しく処理しているか検証するために、2進数の加算を追跡します。

Try It — Number Base Converter

フルツールを開く