基本情報技術者試験で必ずマスターしておかなければならいのが2の補数表現である。基本情報技術者試験において繰り返し出題されるテーマである。
補数とはでは、補数の概念を理解してもらうために10の補数と9の補数を例に補数とは、ある基準となる数値から対象となる数値を引いたものであることを解説した。
ここでは、2進数のマイナスの数値を表現するときに用いられる2の補数表現について解説する。
2進数においては、基数の補数は2進数であるから、2の補数である。減基数の補数は、1の補数である。
2の補数と1の補数も10の補数と9の補数と同じ方法で求めることができる。
例えば、8ビット2進数の00011011の2の補数と1の補数は、以下の式で求めることができる。
28を2進数で表すと、100000000である。28−1を2進数で表すと11111111である。
したがって、2の補数と1の補数は以下のとおりである。
10進数の引き算であれば普段おこなっているのでスムーズに計算できるだろう。しかし、普段使っていない2進数の引き算では繰り下がりが慣れていないと時間がかかる。
2の補数と1の補数を見ると以下のことが分かる。
以上から2の補数と1の補数は引き算をおこなわずすに以下の順で求めればよい。これは、とても重要なのでしっかりマスターして欲しい。