Open7

アルゴ式(コンピュータ上の数の表現)

FumiyaNakamuraFumiyaNakamura

位取り記数法
0〜9までの小さい数を組み合わせることで大きい数を表現する方法。
例えば1000とか。
数字に対応する文字を用意するには限りがあるので。

FumiyaNakamuraFumiyaNakamura

N進法/N進数
N進法はN種類の数を使って表現する方法。N進数はN進法を使った数。
例えば0〜9までの10種類を使って数を表すのは10進数。
0,1,2なら3進数。

FumiyaNakamuraFumiyaNakamura

N進法ではN-1の次の数が10になる。

例えば2進法では、N-1つまり1の次の数は10になる。
7進法ではN-1つまり6の次の数は10。26の次の数は30になる

FumiyaNakamuraFumiyaNakamura

10進法をN進法に変換する方法
商が0になるまでNで割り続けて、余りを下の位から並べることで元の数をN進法に変換できる

FumiyaNakamuraFumiyaNakamura

16進法
0〜9までの10種類と、A〜Fの6種類の計16種類を使って数を表す方法。

10進法 16進法
0 0
9 9
10 A
15 F
16 10
26 1A
FumiyaNakamuraFumiyaNakamura

N進法で小数を扱う
10進法では整数でない数を表現することができる。
1.234という小数は、1が1個、0.1が2個、0.01が3個、0.001が4個集まった数を表す。

N進法では小数点以下では0.1, 0.01, 0.001, ....の代わりに1/N, 1/N^2,1/N^3で表現する

FumiyaNakamuraFumiyaNakamura

10進法表記された小数をN進法に変換する

整数部分は今まで通りの取り方で良い。
小数部分に関しては、1/N, 1/N^2,1/N^3と大きい順に取れるだけとる。

例えば0.625を2進法表記にしてみる。
まずは0.5で割るので0.625から0.5が1つ取れて、0.125余る。つまり、0.625 = 0.5 * 1 + 0.125
次に0.25で割るので0.125からは1つも取れない。つまり、0.625 = 0.5 * 1 + 0.125 * 0 + 0.125
次に0.125で割るので0.125から1つ取れて、0余る。つまり、0.625 = 0.5 * 1 + 0.125 * 0 + 0.125 * 1

つまり10進法で0.625と表される数を2進法表記にすると、0.101となる。