基本情報技術者講座

1の補数と2の補数

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の補数は以下のとおりである。

基本情報技術者講座1の補数と2の補数

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の補数)

基本情報技術者講座