› データと計算に戻る

コンピュータの基礎の補足説明

負の数の求め方

ビットシフトとビット反転及び加算器だけで四則演算を実現するため、1の補数と2の補数を求めたうえで符号付き数値表現を用いて負の数を求める。

  1. 1の補数
  2. 2進数に対し、すべての桁をビット反転(0の場合は1、1の場合は0)に変換する。

  3. 2の補数
  4. 1の補数に対し、+1する。

  5. 符号付き数値表現
  6. ビット反転だけでは正の数か負の数かの判断がつかないので上位1ビットを0は正の数、1は負の数とする符号ビットとし、正の数と負の数を識別する。

    例)5の負の数
    5 0 0 0 0 1 0 1
    1の補数 1 1 1 1 0 1 0 各桁をビット反転
    2の補数 1 1 1 1 0 1 1 1を加算する
    負の数 1 1 1 1 1 0 1 1 最上位ビットに負の数を示す1をセット

    例)8ビット長での数値表現
    10進数 2進数
    127 01111111
    126 01111110
    2 00000010
    1 00000001
    0 00000000
    -1 11111111
    -2 11111110
    -126 10000010
    -127 10000001
    -128 10000000

    ※通常、符号なし(正の数のみ表現)であれば8ビットは0~255の数値が表現できるが、符号ありの場合は127~-128が値の範囲になる。