
IT関連の練習問題(ITキャパチャージ)
- 基本情報技術者試験の合格に役立つサイトです。リクルートが運営するキーマンズネットは無料会員登録が必要ですが、練習問題が豊富で解説がとても分かりやすいです。
IT単語帳は調べたいIT用語が簡単に調べられます。基本情報技術者試験合格のためにぜひ、無料会員登録をしておきたいサイトです。
1の補数と2の補数
基本情報技術者試験で必ずマスターしておきたいのが2の補数表現である。基本情報技術者試験において繰り返し出題されるテーマである。
2進数のマイナスの数値を表現するときに用いられる2の補数表現について解説する。
1の補数と2の補数のポイント
1の補数の求め方
各けたの1と0を反転する
2の補数の求め方
1の補数+1
マイナスの10進数を2の補数表現する
10進数を2進数に変換し、その2進数を2の補数表現する
2の補数表現されたマイナスの2進数を10進数に変換する
最上位ビットに注目して、1ならばマイナスの数値であるから2の補数を求める。0ならばそのまま2進数を10進数に変換する。
2進数における1の補数と2の補数
2進数においては、基数の補数は2進数であるから、2の補数である。減基数の補数は、1の補数である。
2の補数と1の補数も10の補数と9の補数と同じ方法で求めることができる。
例えば、8ビット2進数の00011011の2の補数と1の補数は、以下の式で求めることができる。
- 2の補数
- 28-00011011
- 1の補数
- 28-1-00011011
28を2進数で表すと、100000000である。28-1を2進数で表すと11111111である。
したがって、2の補数と1の補数は以下のとおりである。

10進数の引き算であれば普段おこなっているのでスムーズに計算できるだろう。しかし、普段使っていない2進数の引き算では繰り下がりは慣れていないと時間がかかる。
2の補数と1の補数は見ると以下のことが分かる。
1の補数は、各けたの1と0を反転したものである
2の補数=1の補数+1
以上から2の補数と1の補数は引き算をおこなわずすに以下の順で求めればよい。
1.10進数を2進数に変換する
2.表現するビット数で表す(上位に足りないけた数分0を補充する)
3.各ビットを1と0を反転させる(1の補数)
4.1の補数に+1する(2の補数)