補数
[Wikipedia|▼Menu]

補数(ほすう、(: complement)または余数(よすう)とは、ある数 x とのが基準となる数 C に等しくなるような数である[1][2][3]。すなわち、補数を xc とすればこれは x + xc = C を満たす。

C を b 進法の基数の bn とすればこれは、b 進法で bn = 100…00b と表せる。従ってこの場合、非負の整数 x に対する補数 xc は x に足して n + 1 桁になる最小の整数と言える。

補数は計算機において、減算や負の数を表すためにしばしば利用される。
定義

x を b 進法で n 桁[注 1]非負整数とする。x に対する基数の補数(: radix complement)は以下のように定義される[4][5]: b n − x {\displaystyle b^{n}-x}

基数が文脈から明らかなら、単に b の補数(: b's complement)と呼ばれる(例えば二進法における基数の補数は2の補数と呼ばれる)。同様に、x に対する減基数の補数(: diminished radix complement)[注 2]は以下のように定義される[6][7]: ( b n − 1 ) − x {\displaystyle (b^{n}-1)-x}

基数が文脈から明らかなら、単に (b − 1) の補数(: (b − 1)s' complement)と呼ばれる(例えば二進法における減基数の補数は1の補数と呼ばれる)。
呼称

日本語において、文脈から基数が明らかでない状況で「N の補数」と言った場合、「N + 1 進法における減基数の補数」と「N 進法における基数の補数」のどちらを指すか曖昧である。例えば、「9の補数」は「9進法における基数の補数」と「10進法における減基数の補数」のいずれの意味でも用いられ得る。曖昧さを取り除くためには、「基数の補数」か「減基数の補数」のいずれであるかを示したり、基数が何であるかを示す必要がある。

英語において文章上は、例えば基数の補数を nine's complement[注 3]と書き、減基数の補数を nines' complement[注 3]と書くことで区別できる[8]
補数の利用・応用
繰り上がり(繰り下がり)のある計算

補数は身近なところでも利用される。ほぼ無意識のうちに使っているが、繰り上がりのある足し算で使われる[9][10]例えば、「8 + 7 = 15] という計算を考える。まず、7 に何を足せば 10 を作れるかを考えると 3 である。8 を 5 + 3 に分解して、3 + 7 で 10 を作り、1 の位は残った 5 であるから、合わせて 15 となる。つまり、1の位の計算で、7 を足す代わりに 7 の補数である 3 を引くことで、繰り上がりのある計算ができる。これをきちんと数式で書くと

x + y = x + y + b 1 − b 1 = b 1 + x − ( b 1 − y ) {\displaystyle {\begin{aligned}x+y&=x+y+b^{1}-b^{1}\\&=b^{1}+x-(b^{1}-y)\\\end{aligned}}}

である。式の最右辺において、 b 1 {\displaystyle b^{1}} は上の位への繰り上がりである。残りの x − ( b 1 − y ) {\displaystyle x-(b^{1}-y)} が、 y {\displaystyle y} を足す代わりに、 y {\displaystyle y} の補数を引くことを意味する。

この計算方法は、そろばんでも同様に使われる。つまり 7 を足すときに、繰り上がりが発生するときは、一の珠を 3つ下げる。ほかの数字でも同様。なお、そろばんでは五珠もあるので、10 の補数のほか、5 の補数も使わなければならない。

繰り下がりのある引き算でも同様である。
補数を利用した減算

補数を利用すると、正整数の減算を加算処理で行うことができる。

以下に、10 進 5 桁の減算 52934 − 38917 = 14017 {\displaystyle 52934-38917=14017} を、補数を用いて加算処理に置き換えた例を説明する。被減数を x、減数を y とし、減算結果を x − y ≡ z {\displaystyle x-y\equiv z} とする。

減数 y の減基数の補数を求める。この計算は、各桁について補数を求めればよいので桁借りが発生せず、簡単に行うことができる。

y ′ ≡ ( 10 5 − 1 ) − y {\displaystyle {\begin{aligned}y'&\equiv (10^{5}-1)-y\end{aligned}}}

⟹ [ 9 9 9 9 9 − 3 8 9 1 7 6 1 0 8 2 ] {\displaystyle \Longrightarrow \left[\quad {\begin{matrix}&9&9&9&9&9\\-&3&8&9&1&7\\\hline &6&1&0&8&2\\\end{matrix}}\quad \right]}


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:23 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef