【資格の勉強】2の補数表現

※当サイトはアフィリエイト広告を利用しています。商品を紹介し、収益を得ることがあります。

2の補数表現とは、2進数におけるマイナス表現である。

例)10進数「-5」を8ビットの2進数で表す手順

  • 「-5」を「5」にする。
  • 「5」を8ビットの2進数「00000101」に変換する
  • 「00000101」を反転して「11111010」にする
  • 「11111010」に「1」を足して「11111011」にする
  • つまり「11111011」が「-5」となる

つまり、正の数を反転して「1」プラスした値が、負の数となる。コンピューターは足し算しかできない。そのため足し算で0を作り出す方法を利用して、負の数を導き出さなければならない。同じ数であれば「正+負=0」という法則で負の数を出す。

10進数を例にすると、+5に加えることで0にできる数は-5。

8ビットの2進数でも0を目指す。

8ビット2進数の0は、8桁の「00000000」。これは9桁の「100000000」と同じ扱いになる。最上位ビットの「1」は9ビット目に当たり、8ビット指定においては溢れてしまい無視されるからだ。

では8桁の2進数「00000101」に加えることで0(つまり9桁の100000000)にできる数はなにかといえば、「11111011」。

 00000101
+11111011
————–
100000000

「11111011」は、「00000101」を反転させた「11111010」に「1」を加えた数である。だから2進数の「11111011」は、10進数の-5と同じとなる。

コメント