「2の補数」と「1の補数」の違い
予備知識
| 用語 | 意味 |
|---|---|
| 10進数 | それぞれの桁の数字が「10」になると桁上がりする数字 |
| 2進数 | それぞれの桁の数字が「2」になると桁上がりする数字 |
| 補数 | 元の数に足すと桁上がりする数のうち一番小さいもの。あるいは、元の数に足しても桁上がりしない数のうち一番大きいもの |
| 基数の補数 | 元の数に足すと桁上がりする数のうち一番小さいもの |
| 減基数の補数 | 元の数に足しても桁上がりしない数のうち一番大きいもの |
例えば10進数「39」の基数の補数は「61」です。
「39」と「61」を足すと「100」になります。
2桁の数に足して3桁になる数(の中で一番小さいもの)ですよね。

10進数「39」の減基数の補数は「60」です。
「39」と「60」を足すと「99」です。
ギリギリ2桁のままですよね。

それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 2の補数 | 2進数版・基数の補数。2進数における、元の数に足すと桁上がりする数のうち、一番小さいもの |
| 1の補数 | 2進数版・減基数の補数。2進数における、元の数に足しても桁上がりしない数のうち、一番大きいもの |
似ているところ
どちらも「補数」と呼ばれているものです。
あと、どちらも2進数の話で出てきます。
違うところ
大雑把に言えば、桁上がりするかしないかの違いです。
それぞれ
2の補数:足すと桁上がりする数のうち、一番小さいもの
1の補数:足しても桁上がりしない数のうち、一番大きいもの
です。
例えば、そうですね。
2進数で「101」という数字が あったとしましょう。

「101」は3桁です。

「101」に「1」を足すと「110」になります。
3桁です。

「101」に「10」を足すと「111」になります。
3桁です。

「101」に「11」を足すと「1000」になります。
4桁になりました。

3桁の「101」に足すと4桁になる数のうち一番小さい「11」が(「101」の)2の補数です。

3桁の「101」に足してもギリギリ4桁にならない「10」が(「101」の)1の補数です。

備考
10進数における補数は
基数の補数:10の補数
減基数の補数:9の補数
と表現したりします。

「9」は「10-1(ジュウ・ヒク・イチ)」ですよね。
ということは10進数の補数は
基数の補数:10の補数
減基数の補数:(10-1)の補数=9の補数
と解釈できます。

実は2進数の場合も同じです。
2進数における
基数の補数:2の補数
減基数の補数:1の補数
は
基数の補数:2の補数
減基数の補数:(2-1)の補数=1の補数
と解釈できます。

出てくる数字が「1」と「2」なので順番っぽく見えちゃうかもしれませんけどね。
実際には「2-1」と「2」だったりします。
さて、ここまでを踏まえて、ちょっと考えてみてください。
3進数の場合は、どのような表現になりますかね?
3進数の場合は
基数の補数:3の補数
減基数の補数:(3-1)の補数=2の補数
となります。

おやおや「2の補数」という表現が出てきてしまいましたね。
ということで「2の補数」という表現が出てきたときには
1.2進数における基数の補数:2の補数
2.3進数における減基数の補数:(3-1)の補数=2の補数
の2つの可能性があります。
ただし、3進数が出てくる機会があまりないので
2の補数=2進数における基数の補数
と決め打ちで説明されていることが多いのです。
それでは1の補数は、どうでしょうか。
1の補数が基数の補数になるのは1進数の場合です。
1進数の場合は
基数の補数:1の補数
減基数の補数:(1-1)の補数=0の補数
となります。
ただし、1進数も一般的では ありません。
よって
1の補数=2進数における減基数の補数
と決め打ちで説明されていることが多いのです。






