COMPLEMENT

1の補数・2の補数のやり方

補数は、コンピュータが負の数を扱うために使われる考え方です。手順はシンプルで、「反転」と「+1」がポイントです。

先に練習したい方:
→ 無料の補数を開く

1の補数とは?

1の補数は、2進数の0と1をすべて反転したものです。

元の値:10110010 1の補数:01001101

2の補数とは?

2の補数は、1の補数に1を足して求めます。

① 0と1を反転
10110010 → 01001101
② 1を足す
01001101 + 1 = 01001110

したがって、10110010 の2の補数は 01001110 です。

負の10進数を2の補数で表す

たとえば、8bitで -13 を表してみます。

① 13を2進数へ
00001101
② 0と1を反転
11110010
③ 1を足す
11110011

したがって、8bitで -13 は 11110011 です。

なぜ2の補数を使うの?

2の補数を使うと、引き算を専用回路で処理せず、足し算と同じ仕組みで扱いやすくなります。そのため、コンピュータの符号付き整数表現で広く使われています。

よくあるミス

2の補数を作る手順

  1. 正の値を指定bit幅の2進数で表します。
  2. 0と1をすべて反転して1の補数を作ります。
  3. その値に1を加えると2の補数になります。

具体例:8bitで-5を表す

+5 = 00000101
反転 → 11111010
+1 → 11111011
したがって8bitの2の補数表現で -5 は11111011です。

2の補数から値を読む

最上位bitが1なら負数として扱う問題では、反転して1を加えることで絶対値を確認できます。bit幅が変わると表現範囲も変わるため、問題文のbit数を必ず確認します。

よくある間違い

反転しただけで止めない
反転だけは1の補数です。2の補数ではさらに1を加えます。また桁あふれは指定bit幅の外として扱います。

試験でのポイント

n bitの2の補数表現の範囲は -2n-1 〜 2n-1-1 です。8bitなら -128〜127 になります。

2の補数とは?

2の補数は、コンピュータで負の整数を表現するときによく使われる方法です。決められたbit幅の中で正負の整数を扱いやすく、加算回路を利用して減算も処理できます。

2の補数の求め方

負の値を作る基本手順は「正の値を2進数で表す → 0と1を反転する → 1を加える」です。

8bitで-5を表す
+5:00000101
反転:11111010
1を加える:11111011
したがって -5 は11111011です。

1の補数と2の補数の違い

0と1を反転しただけの値が1の補数です。そこへさらに1を加えたものが2の補数です。「反転したところで答えにしてしまう」のが代表的なミスです。

2の補数から10進数へ戻す方法

負数として扱う2進数は、0と1を反転して1を加えることで絶対値を確認できます。問題では最初に8bit、16bitなどのbit幅を確認してください。

8bitの2の補数で表せる範囲

n bitの2の補数表現では、一般に -2n-1 から 2n-1-1 までを表せます。8bitなら-128〜127です。

手順を覚えたら反復練習
1の補数・2の補数・負の10進数の2の補数表現を自動出題します。