削除された内容 追加された内容
m 導入部修正
m 過剰な(かつ一部は誤った)リンクを整理、およびTemplate:出典の明記
1行目:
{{出典の明記|date=2021年7月}}
'''補数'''(ほすう、''complement'')とは、ある[[N進位取り記|数法]]においてのもとで、ある[[自然数]] a に足したとき桁が1つ上がる(桁が1つ増える)数のうち最も小さい数をいう。応用の一例としては、計算機械において、「ある数から、xを引く」という操作を、加算する機械([[加算器]])で「ある数にxの補数を足す(ただし最も上の桁からの繰り上がりを無視する)」という操作でおこなうことができる、というものがある。
 
== 定義 ==
''b'' 進法において、自然数 ''a'' を表現するのに必要な最小の桁数を ''n'' としたとき、
* <math>b^n - a</math> を&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;「''b'' 進法における ''a'' に対する'''[[位取り記数法|基数]]の補数'''(''b'' の補数)」
* <math>b^n - a - 1</math> を「''b'' 進法における ''a'' に対する'''[[減基数]]の補数'''(''b - 1'' の補数)」
という。
 
例えば、10進法において、自然数 61 に対する[[基数]] 10 の補数は <math>10^2 - 61 = 39</math> である。また、2進法において、自然数 <math>10010_2 (= 18_{10})</math> に対する[[基数]] 2 の補数は <math>2^5 - 18 = 1110_2 (= 14_{10})</math> である。
 
定義したように考えると、''a'' の[[基数]]の補数と ''a'' とを足すと、桁数が1つ増える最小の自然数(<math>= b^n</math>)となり、''a'' の[[減基数]]の補数と ''a'' とを足すと、桁数が増えない最大の自然数(<math>= b^n - 1</math>)となる。
 
基数 ''b'' が文脈上明らかなときには、「''b'' 進法における」という表現はしばしば省略される。
 
しかし、[[基数]]が明らかでないときに省略すると、「<math>\beta</math> の補数」と表現した場合、<math>(\beta + 1)</math> 進法における[[減基数]]の補数と <math>\beta</math> 進法における基数の補数のいずれを指すのか曖昧になる(これらの値は必ずしも等しくない)。例えば、単純に「9の補数」と表現すると、「10進法における減基数(としての9)の補数」なのか「9進法における基数(である9)の補数」なのか判別できない。
 
一方、「基数の補数」や「減基数の補数」という用語を用いればこのような意味での曖昧さはない。