進法とは、数をのべきの和(各係数は)で表す記法のことです(は以上の整数)。 私たちが普段使う10進法はの場合で、個の記号(〜)を使い、各桁がの位を表しています。
1 位取り表示の存在と一意性
定義 1.1.を以上の整数とする。正整数の 進表示 (base-n representation) とは、整数と整数による表示
である。を底、を各桁の数字といい、表示をと書く。桁数はである。の表示は一桁のとし、負整数の表示は、その絶対値の表示の前に負号を付ける。底がを超える場合には、以上の数字にもそれぞれ一つの記号を割り当てる。
定理 1.2.を以上の整数とする。すべての整数は、ただ一通りの進表示をもつ。
証明. 正整数に対してと置く。である間、§A4.1 定理 2.1によって
を満たす商と余りを取る。であるから、正整数である商は各段階で減少し、有限回の操作の後にとなる。このときであり、なのでである。各等式を順に代入すると
を得る。
任意の進表示において、最下位の数字はをで割った余りに等しく、残りの桁が表す数はその商に等しい。除法の原理により、余りと商はただ一通りに定まる。商について同じ操作を繰り返すと、すべての数字が一致する。一方の表示だけに桁が残ることは、先頭の数字がでない正整数の表示がを表すことになるため、起こらない。したがって桁数も一致する。と負整数については、定義した表示の規約から存在と一意性が従う。▨
2 10進から2進への変換
正整数を底で割り、商をさらに同じ底で割る操作によって、最下位の桁から順に数字が求まります。
例 2.1.を2進法で表すために、で割る操作を繰り返す。
- 余り
- 余り
- 余り
- 余り
商がになったので、操作を終える。余りは最下位の桁から順にと求まる。表示では最上位の桁を左に書くので、余りを求めた順と逆に並べるととなる。
各桁に対応するべきを掛けて足すと、10進表示に戻る。
3 2進法の四則計算
公式 3.1.を以上の整数、を以上の整数とする。位の係数をで割った商を、余りをとすると、、であり、
と書き換える。位にはを残し、次の位へを加える。逆に、一つ上の位のを下の位のに書き換えても、表す数は変わらない。
例 3.2. 以下の数字列はすべて2進表示とする。
を計算する。一の位のはなので、一の位にを置き、次の位にを加える。次の位も、その次の位もとなる。最上位ではとなるので、答えはである。
例 3.3. 以下の数字列はすべて2進表示とする。
を計算する。桁をそろえるために、引く数の左にを添えてと書く。一の位のからを引くために、二の位のを一の位のに書き換える。一の位の差はとなる。二の位はになっているので、八の位から四の位を経て借り入れる。二の位の差は、四の位の差はとなる。八の位では十六の位から借り入れてとなり、答えはである。
例 3.4. 以下の数字列はすべて2進表示とする。
分配法則により、は、と二桁左へ移したの和である。したがって
となる。
例 3.5. 以下の数字列はすべて2進表示とする。
をで割る。を引くとが残り、そこからを引くとが残り、さらにを引くとが残る。引いた数はそれぞれ、、なので、商は、余りはである。
であるから、商と余りは除法の条件を満たす。
4 桁数と数の大きさ
系 4.1.を以上の整数、を正整数とする。の進表示がちょうど桁であるための必要十分条件は
である。
証明.の進表示の桁数をとする。先頭の数字は以上であり、すべての数字は以下であるから、
が成り立つ。和の等式はをについて足すことで得られる。したがってならば、求める不等式が成り立つ。逆にを仮定する。ならばとなり、ならばとなる。どちらも仮定に反するので、である。▨
例 4.2.なので、系 4.1により、の2進表示は桁である。
5 コンピュータと2進・16進、小数の表示
コンピュータでは、二つの状態を区別する2進法が広く用いられます。 2進表示を人が読む場合には、4桁ずつまとめて1桁にする16進法が用いられます。 16進法では、〜に加えて〜を使います。 4桁の2進表示が表す数は以上以下なので、16進法の一桁に対応します。色コードやメモリアドレスにも16進法が使われます。
注意 5.1. 小数の位には、底の負の指数のべきを用いる。10進法のは、2進法では
と循環する。小数点以下桁までの有限2進表示なら、を掛けると整数になる。しかしはどの非負整数に対しても整数でないので、は有限2進表示をもたない。 10進法でが循環するのと同じく、底を変えると、有限桁で表すことができない分数も変わる。
を有限の2進表示で保存する場合には近似値を使います。浮動小数点では、数を限られた桁数で保存するため、入力値の近似や演算時の丸めによる誤差が生じます。の加算結果を調べる場合にも、保存される近似値と丸めの方式を区別する必要があります。
閑話休題:底と表示の費用 底における正整数の桁数をとし、記号の種類と桁数の積を費用とする。桁数をで近似すると、費用はとなる。この連続近似では底が最小値を与え、整数の底ではが最小値を与える。一方、実際の桁数は整数であるため、特定のについて底が費用を最小にするとは限らない。実際、では、底の費用は、底の費用はである。記号の種類と桁数の積は radix economy と呼ばれる指標であり、計算機の素子の製造費用や演算時間を直接表すものではない。
1958年、モスクワ大学で開発されたコンピュータ「セトゥン」(Setun)は、の三つの数字を使うバランス3進法で動く実機であった。少数が製造され、教育機関などで使われた記録も残っている。一方、計算機では2進法が広く使われるようになった。二つの状態を区別する素子と三つ以上の状態を区別する素子では、安定性や製造の条件が異なるため、表示の費用だけで計算機に用いる底が決まるわけではない。