広義の記数法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/02/21 14:02 UTC 版)
この項では基本的な位取り記数法を除く、負の数や虚数を含む記数法等について述べる。 ここでは仮数とは、その位に記された数のこと[要出典]とし、 底(てい)とは、その位の一つ上の位の値が持つ、その位に対する重みの倍率とする。
標準的な記数法
この節では、底が一定で冗長でない記数法について説明する。
書き方は位取り記数法と同じく、底が K であれば、数
底が -1+i で 0, 1 を仮数に持つ記数法により 0.XXX... の形で表記できる範囲。ツインドラゴン曲線と酷似する。 商は 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 となる。- 底が -2 で仮数に 0, 1 を持つ記数法
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
から平衡三進法では 10001 と表記できる。
また、基本的には複素数を表記する記数法ではこの変換は難しいが、 底が -1+i で仮数に 0, 1 を持つ記数法では、比較的簡単に計算できる。 ある複素数 x+yi に対して (x, y は整数) 、
- (x + yi) ÷ (-1 + i) = p + qi . . . c
となる整数 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 と表記できる。
十進法への変換(有限小数部分)
上位より仮数を足してから底を掛けていき、最下位の仮数を足したら、 それに最下位の重みを掛けるという方法がある。
十進法への変換(循環小数部分)
次の式を利用して変換できる。 (|e|>1)
位の統合と分割
二つの記数法があるとし、それぞれの底が n, nk となっており、 底が n の方で k桁で表される全ての数が、底が nk の方では 1桁で表される時、 その対応により、各位を変換するだけで任意の数を変換することができる。 例えば、0, 1 を仮数に持つ底が -2 の記数法 [A] と、 -2, -1, 0, 1 を仮数に持つ底が 4 の記数法 [B] は、 10 と 、11と 、00 と 0 、01 と 1 が対応しているので、 例えば [A] で表記された 100011011 の二つの位を一つに統合すると、 101 となり [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進記数法)とする。
集合 MK={|Ci∈mi, i∈z} をとったとき、任意の ε>0 に対して |X-Y|<ε となる Y∈MK が存在することを、 K進法で X を表記できるという。
ε を 0 に近づけたときの、 MK の元の極限 を X の K進展開 と呼び、これを ...C2C1C0.C-1C-2... と書いたものを X の K進表記(あるいは X の K進表現、あるいは X を意味する K進数)と呼ぶ。 このとき、0番位以外で仮数が 0 の位が無限に続く部分は省略するが、 省略されずに残った位の個数を桁数と呼ぶ(助数詞は桁)。
ある記数法において、ある(あるいは、全ての)整数について[2]表記法が複数あるような場合を、冗長であるという。
関連項目
注・参考文献
- ^ “MOF page”. 日立製作所 システム開発研究所 (2004年9月16日). 2004年9月16日時点のオリジナルよりアーカイブ。
- ^ 実数の場合、1.0 = 0.999... であるように、記数法ではなく数そのものの性質に由来する、表記の冗長性がある。
- 伊東規之『マイクロコンピュータの基礎』日本理工出版会 ISBN 9784890194322
- 広義の記数法のページへのリンク