広義の記数法

この項では基本的な位取り記数法を除く、負の数や虚数を含む記数法等について述べる。
ここではとし、
底（てい）とは、その位の一つ上の位の値が持つ、その位に対する重みの倍率とする。
標準的な記数法.
この節では、底が一定で冗長でない記数法について説明する。
書き方は位取り記数法と同じく、底が "K" であれば、数
を
のように仮数を書き並べることで表記できる。この記法では、"n" を自然数とすると
が成り立つ。一般的に位取り記数法と呼ばれるものは、0 から "N" − 1 までの "N" 個の整数を仮数にもつ底が "N" の表記法のことである。これは任意の 0 以上の実数を無限に近似できるが、その他の数を表記するには演算子が必要となる。
中には底が自然数でないものも考えられている。コンピュータでは二進法を用いている場合がほとんどだが、符号の扱いが難しい。そこで、底を −2 とした記法が考えられた。この方法では、0 と 1 を用いてすべての整数を表すことが出来る。その他に複素数を表記するため、−1 + "i" を底としたものも考えられている（"i" は虚数単位）。これらはドナルド・クヌースにより考案されたが、演算が複雑なため実際に用いられることは稀である。
自然数を表記するもの.
仮数が "N" 通りであるものの、0 を含まずに 1 から "N" までを使用するのがである。この表記法で整数の 0 を表そうとすると空文字列になってしまう。また、途中の桁を 0 にすることはできない。"N"=26 である A, B, ..., Z, AA, AB, ... のような形式が、表計算ソフトの列名などで用いられている。"N"=1 とすると一進法となる。
実数を表記するもの.
仮数が "N" 通りであれば、底は ±"N" となる。
任意の実数を表記できるものとして、次の例が考えられる。
複素数を表記するもの.
"i" は虚数単位とする。仮数が "n" 通りであれば、底の絶対値はformula_4となる。
任意の複素数を表記できるものとして、次の例が考えられる。
注釈
冗長な記数法.
ここでは、小数点から上に数えて n番目の位を n-1番位と呼ぶことにする。
例えば二進法では、n番位の重みは 2n である。
次に例を挙げる。
複数の底の混在.
表記法の内部で底 "N" が一定であれば各桁の重みは "N" の冪乗となるが、ここではそれに限定しない表記法を述べる。
対応表.
ここでは -n をformula_6と表記する。
他には、WWW との適合性のため -n を n と書いたり、
formula_7を単に T と書く手法もある。
演算.
標準的な記数法の上での、加法、減法、乗法、除法の算法について説明する。
加法、減法、乗法.
加法と乗法については、あらかじめ各仮数同士の計算結果を表にしておき、それを見ながら計算すればよい。
加算時の繰り上がりは上の位にさらに足すことや、二桁以上の乗算については、
formula_8が成り立つことに注意して計算を実行していく。
減法については表を作ってもよいが、
引く数に -1 を掛けてから引かれる数に足すという方法も考えられる。
例として、底が 4 で仮数に -2, -1, 0, 1 を持つ記数法の、加算と減算と乗算の表を次に示す。
除法.
底を K とした K進法の上で R を D で割る手順を説明する。
記数法によって決まる、一桁の商を示す二変数関数 QK が分かっているとし、
十分に大きな整数 n をとり、次の計算を行う。
 rn=R
 cn=QK(rn , DKn ) rn-1= rn-cnDKn
 cn-1=QK(rn-1, DKn-1) rn-2=rn-1-cn-1DKn-1
 cn-2=QK(rn-2, DKn-2) rn-3=rn-2-cn-2DKn-2
 ...
 c0=QK(r0 , D ) r-1= r0-c0D
商は K進法で cncn-1…c0 となり、
余りは r-1 となる。
ただし記数法によっては、 0.XXX... の形で表記できる範囲がフラクタルを描くため
QK が作れなくなり、除算が不可能となる。
またこの操作をさらに続けると、循環小数が商として得られる。
Q(r, d) の例を次に示す。
d≦0 または r＜0 または 10d≦r は禁止で、
0≦r＜d ならば Q(r, d)=0 
d≦r＜2d ならば Q(r, d)=1 
2d≦r＜3d ならば Q(r, d)=2 
8d≦r＜9d ならば Q(r, d)=8 
9d≦r＜10d ならば Q(r, d)=9 となる。
d=0 または (r＜-2d/3 かつ r＜4d/3) または (-2d/3＜r かつ 4d/3＜r) は禁止で、
d/3＜r≦4d/3 または 4d/3≦r＜d/3 ならば Q(r, d)=1 
-2d/3≦r≦d/3 または d/3≦r≦-2d/3 ならば Q(r, d)=0 となる。
d=0 または (r＜-3d/2 かつ r＜3d/2) または (-3d/2＜r かつ 3d/2＜r) は禁止で、
d/2＜r≦3d/2 または 3d/2≦r＜d/2 ならば Q(r, d)=1 
-d/2≦r≦d/2 または d/2≦r≦-d/2 ならば Q(r, d)=0 
-3d/2≦r＜-d/2 または -d/2＜r≦-3d/2 ならば Q(r, d)=-1 となる。
記法の変換方法.
標準的な記数法に対しての、数の表記法を変換する方法を説明する。
十進法からの変換（整数部分）.
余りが仮数に含まれるように底で割っていく方法がある。この方法では下位の仮数から求まる。
例えば十進法で表記された数3620を平衡三進法に変換すると、
 3620 ÷ 3 = 1207 . . . -1
 1207 ÷ 3 = 402 . . . 1
 402 ÷ 3 = 134 . . . 0
 134 ÷ 3 = 45 . . . -1
 45 ÷ 3 = 15 . . . 0
 15 ÷ 3 = 5 . . . 0
 5 ÷ 3 = 2 . . . -1
 2 ÷ 3 = 1 . . . -1
 1 ÷ 3 = 0 . . . 1
から平衡三進法では
1formula_7formula_700formula_701formula_7
と表記できる。
また、基本的には複素数を表記する記数法ではこの変換は難しいが、
底が -1+i で仮数に 0, 1 を持つ記数法では、比較的簡単に計算できる。
ある複素数 x+yi に対して (x, y は整数) 、
となる整数 p, q と仮数 c を求める。この式を変形すると、
の 2 式が得られる。 x+y が奇数なら -x+y, -x-y も奇数なので p, q が整数であることに注意すると、
x+y が奇数のとき c=1 、偶数のとき c=0 がわかる。
十進法からの変換（小数部分）.
上にある除法の節の QK を利用し、次の計算を行う。
変換前の十進数を R とする。
 r0=R
 c0=QK(r0, 1) r1=K×(r0-c0)
 c1=QK(r1, 1) r2=K×(r1-c1)
 c2=QK(r2, 1) r3=K×(r2-c2)
これにより、 R は K進法で c0.c1c2c3... と表記できる。
十進法への変換（整数部分）.
上位より仮数を足してから底を掛けていく方法がある。
例えば 0, 1 を仮数に持ち、底を -2 とした記数法で表記された数 1101101 を十進法に変換すると、
 0+1= 1 1×(-2)= -2
 -2+1= -1 -1×(-2)= 2
 2+0= 2 2×(-2)= -4
 -4+1= -3 -3×(-2)= 6
 6+1= 7 7×(-2)=-14
 -14+0=-14 -14×(-2)= 28
 28+1= 29
から十進法では 29 と表記できる。
十進法への変換（有限小数部分）.
上位より仮数を足してから底を掛けていき、最下位の仮数を足したら、
それに最下位の重みを掛けるという方法がある。
十進法への変換（循環小数部分）.
次の式を利用して変換できる。
formula_14
　　　　　(|e|＞1)
位の統合と分割.
二つの記数法があるとし、それぞれの底が n, nk となっており、
底が n の方で k桁で表される全ての数が、底が nk の方では 1桁で表される時、
その対応により、各位を変換するだけで任意の数を変換することができる。
例えば、0, 1 を仮数に持つ底が -2 の記数法 [A] と、
-2, -1, 0, 1 を仮数に持つ底が 4 の記数法 [B] は、
10 とformula_15 、11とformula_7 、00 と 0 、01 と 1 が対応しているので、
例えば [A] で表記された 100011011 の二つの位を一つに統合すると、
101formula_15formula_7 となり [B] での表記が得られる。
詳しい定義.
各用語の詳しい定義を紹介する。
0 を含む連続した整数の集合 z をとり、その元を位(あるいは桁)と呼ぶ。
特定の位をさしたいときには、0番位や 1番位と単位をつけることにする。
そして、任意の n∈z に対して空でない実数の有限集合 mn をとり、
その元を n番位の仮数と呼ぶ。そして、任意の n∈z に対して実数 Kn を定め、
この Kn を n番位の重み(あるいは意味)と呼び、
Kn+1/Kn を n番位の底(あるいは基数)と呼ぶ。
これらをもとに数を表す方法を記数法(あるいは位取り記数法)という
( mn の元や Kn は複素数でもよい)。
この z, mn, Kn による記数法をK進法(あるいは K進記数法)とする。
集合
をとったとき、任意の ε＞0 に対して |X-Y|＜ε となる Y∈MK が存在することを、
K進法で X を表記できるという。
ε を 0 に近づけたときの、 MK の元の極限
formula_19を X の K進展開 と呼び、これを
...C2C1C0.C-1C-2...
と書いたものを X の K進表記(あるいは X の K進表現、あるいは X を意味する K進数)と呼ぶ。
このとき、0番位以外で仮数が 0 の位が無限に続く部分は省略するが、
省略されずに残った位の個数を桁数と呼ぶ(助数詞は桁)。
ある記数法において、ある（あるいは、全ての）整数について表記法が複数あるような場合を、冗長であるという。