削除された内容 追加された内容
m編集の要約なし
英語版がわかりやすかったので参考。蛇足を整理。
1行目:
'''補数'''('''ほすう''';''Complementcomplement'')とは、ある[[N進数|基数法]]において、ある[[自然数]] a に足したとき桁が1つ上がる(桁が1つ増える)数のうち最も小さい数をいう。
コンピュータが加算処理で正の数の減算(負の数の加算)が行う際に利点がある。
 
==定義==
N''b'' 進法において、N の[[冪乗]](べきじょう) の中で自然数 ''a'' 以上とを表現するのに必要最小のM''n'' としたとき
* M<math>b^n &minus;- a</math> N''b'' 進法における ''a'' に対する '''N 基数の補数'''(''b'' の補数)
* M<math>b^n &minus;- a &minus;- 1</math> N''b'' 進法における ''a'' に対する '''(N減基数の補数'''(''b &minus;- 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> である。
つまり、
* N 進法において、a に足して全体の桁が1つ上がる(増える)最小の自然数を「N 進法における a に対する N の補数」という。
* N 進法において、a に足しても桁が上がらない(増えない)範囲で最大の自然数を「N 進法における a に対する (N &minus; 1) の補数」という。
 
「N の補数」を定義より明らかなように、''a'' の基数の補数''a''、「(N &minus; とを足すと、桁数が1) つ増える最小自然」を(<math>= b^n</math>)となり、''a'' の減基数の補数''a'' 呼ぶこを足すと、桁数が増えない最大の自然数(<math>= b^n - 1</math>)もある。
 
基数 ''b'' が文脈上明らかなときには、N''b'' 進法における」という表現はしばしば省略される。
通常、「N 進法」、「N の補数」及び「 (N &minus; 1) の補数」という用語は、実際には N に具体的な数値を代入して用いられる。
例えば、N = 10であれば「10 進法における 10 の補数」及び「10 進法における 9 の補数」などと言う。
 
しかし、基数が明らかでないときに省略すると、「<math>\beta</math> の補数」と表現した場合、<math>(\beta + 1)</math> 進法における減基数の補数と <math>\beta</math> 進法における基数の補数のいずれを指すのか曖昧になる(これらの値は必ずしも等しくない)。例えば、単純に「9 の補数」と表現すると、「10 進法における減基数の補数」なのか「9 進法における基数の補数」なのか判別できない。
「N 進法における」との表現はしばしば省略される。
しかし、そのように省略すると、「β の補数」と表現した場合、 (β + 1) 進法における減基数の補数と
β 進法における基数の補数のいずれを指すのか曖昧になる(これらの値は必ずしも等しくない)。
例えば、「9 の補数」と表現すると、10 進法における減基数の補数なのか 9 進法における基数の補数なのか判別できない。
英語であれば、例えば nines' complement と nine's complement のように書き分けて一応の区別が可能(Knuth の文献を参照)だが、日本語ではいずれも「9 の補数」という表現になってしまう。
実際には、N は 10 か 2 が使われることが多く([[奇数]]は滅多に使われない)、そのときは深刻な問題となることは少ない。
とはいえ、「N 進法における」の表現を省略をすると、β進法の基数の補数と (β + 1) 進法の減基数の補数が異なる概念であるということが分かりにくくなる。
一方、基数の補数及び減基数の補数の用語の組み合わせにはこのような意味での曖昧さはない。
 
一方、基数の補数及び」や「減基数の補数」という用語の組み合わせにはを用いればこのような意味での曖昧さはない。
なお通常、補数といえば「 N の補数」又は「 (N &minus; 1) の補数」を指すため、本項では補数と「N の補数」等を厳密に区別していない。しかし、補数という用語を単に「定められた数 M からある数 a を引いた数」と定義し、ここで定義した「 N の補数」などと区別して用いる場合もある。
 
英語であれば、例えば nines' complement と nine's complement のように書き分けて一応の区別が可能(Knuth の文献を参照)だが、日本語はいずれも「9 の補数」という表現になってしまうある
 
==利点==