位取り記数法

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

位取り記数法(くらいどりきすうほう)、もしくは「N 進法」(エヌしんほう)とは、の表現方法の一種で、あらかじめ定められたN 種類の記号(数字)を列べることによって数を表す方法である。(位取りのことをともいう。)

今日の日本において通常使われているのは、 N が十である十進法であるが、コンピューターでは二進法八進法十六進法といった「二の冪数」進法が用いられている。用語としては、「十進法」など「N進法」は「N進位取り記数法」を意味する語ではあるが、記数法以外にも「N進(Nで桁上がりする)命数法」という意味や、単に「ある特定の単位から上の単位を作る、冪乗による規則」という意味でも使用される。一方で、「N進法」はほぼ「base-N positional system」「N進位取り記数法」の意味でしか使われない。

本項ではN が自然数の場合を扱う。それ以外の場合については広義の記数法の記事を参照のこと。また 後述するp進数の概念とは(関連があるものの)別概念であるので注意が必要である。

概要[編集]

基本構造

位取り記数法では、一つの列に N 個の数字と呼ばれる記号で数を表現し、一つの列に N 個の数字を容れて、N に達したら数列を一つ増やす。数字を容れる一つの列を(けた)といい、桁の意味する数を(くらい)という。このN個の中には、必ずを意味する数字が含まれ、桁の基数 N は「10」というように「整数第二位が"一"で整数第一位が"零"」として表記される。この「N進」と呼ばれる数列は、「Nの」(Nの倍加)ではなく、「Nの」(Nの冪乗)で進む。即ち、ここでの「進」とは「桁」を進めることである。

より派生して、Nの2乗は「100」、Nの3乗は「1000」、Nで1回分割は「0.1」、Nで2回分割は「0.01」、Nで3回分割は「0.001」として表記される。このように、整数第一位(N0)を「の位」、整数第二位(N1)を「Nの位」、整数第三位(N2)を「N2の位」、整数第四位(N3)を「N3の位」、小数第一位(N-1、1÷N1)を「N分の一の位」、小数第二位(N-2、1÷N2)を「N2分の一の位」、小数第三位(N-3、1÷N3)を「N3分の一の位」として数を表現する。

定義

以下、非負の有限小数の場合のみを扱うが、無限小数の場合も同様である。

なお以下、「数字」という言葉を通常よりかなり広範な意味に用いており、アラビア数字、漢数字、マヤ数字、英語のアルファベットなどを含めた任意の記号を指している事に注意されたい。

自然数 N を一つ固定する。( N をこの記数法の(てい)または基数という)。

さらに N 個の記号を固定する。(例えばアラビア数字とアルファベットで十六進法を表す場合は、N =16 で、)。

さらに各 に対し、

と定義する。

このとき、記号を数字として用いた N 進法とは、自然数 nm を用いた

という形に表記( N 進表記、もしくは N 進数表記)に非負の実数

を対応させる表記体系の事である。

N 進表記された数という意味で「N 進数」という呼称を使用することもある。

N 進数表記の先頭に「+」もしくは「-」の符号をつけることで、数の正負を表現することもできる。

符号をつけた場合の N 進数表記の詳細な説明は省略する。

関連語[編集]

  • 「進」は「倍」ではない
「時間は十二法や六十法」「時間は十二数や六数」というように、"倍"数と"進"法や、"倍"数と"進"数を混同している例が見られるが、十二"進"数なら「50は六十」「0.5は十二分の五」であらねばならず、六"進"数なら「50は三十」「0.5は六分の五」であらねばならない。
しかし、十二進法では二十四は20(十二の冪数ではない)であって百四十四が100(十二の冪数)であり、その上に数字が十二"進"数ではなく十"進"数で表記されたりしており、必ずしも桁や単位が「十二→百四十四→千七百二十八」や「六→三十六→二百十六」などの冪数で設定されているとは限らない(→後で詳述)。
  • 「進法」「進数」
「N進"法"」は冪乗で位を進める法(system)、「N進"数"」はをN進の表記法で表したものである。
  • 用例:六進の100は、十進では36である。
  • 用例:十二進の6A.6は、二十進の42.Aと同値である。

適用例[編集]

十進法[編集]

数列

今日の日本において最も身近な十進法を例に説明する。十進法では、個の数字と呼ばれる記号を用い、一桁に十個の数字を容れて、十倍毎に桁を増やす。数列は、十、二十三十といった「十の数」ではなく、十、といった「十の数」で進む。

アラビア数字なら

0123456789

の十個であり、 漢数字なら

の十個である[1]。以下、アラビア数字を例に説明するが、漢数字の場合も同様である。

十進法ではこれらの数字を列べる事で数を表現する。 例えば、253.48は、

を表す。

また十進法では、以下の性質が満たされる。

  • 整数では、十倍する毎に一桁増え、十分割する毎に一桁減る。
  • 一桁で表せる数は10-1=9までで、10以降は二桁以上を必要し、100以降は三桁以上を必要とする。
  • 小数では、十分割する毎に一桁増え、十倍する毎に一桁減る。
  • 単位は、20や30といった10の数ではなく、100や1000といった10の数で設定される。

例えば、単位も記数法も十進法であるメートル法の単位は、倍増の接頭辞として「ヘクト」や「キロ」、分割の接頭辞として「センチ」や「ミリ」などが使用されている。これらは、例えば 1 キロメートルは十の3(103)である 1000 メートル、1 センチメートルは十で2回分割(10-2)した 1/100 メートル、1 ミリメートルは十で3回分割(10-3)した 1/1000 メートルであり、1080 メートルや 1/30 メートルといった「十の倍数」や「1 ÷ 十の倍数」でもなく、200 メートルや 1/3000 メートルといった「十の冪数のM倍」や「1 ÷ 十の冪数のM倍」でもない。

N 進法は、以上の十進法の説明を、その他の N の場合に敷衍する事で得られる。

Nが十未満[編集]

例えば四進法をアラビア数字で表した場合、使う数字は

0123

の四種類の記号であり、四進法における312.02は、

を表し、これは十進法の54.125にあたる。

また四進法では、十進法に類似した以下の性質が満たされる。

  • 整数では、四倍する毎に一桁増え、四分割する毎に一桁減る。
  • 一桁で表せる数は4-1=3までで、4以降は二桁以上を必要とし、16以降は三桁以上を必要とする。
  • 小数では、四分割する毎に一桁増え、四倍する毎に一桁減る。
  • 単位は、8や12といった4の数ではなく、16や64といった4の数で設定される。

以上の話でも分かるように、同じ「312.02」でも四進法のものと十進法のものでは値が異なる。このため、位取り記数法の話をするときには、常に何進法の話であるのかを明示する必要がある。

Nが十を超過[編集]

十二進法十六進法二十進法のように、N が十より大きい場合は用いる数字は、アラビア数字だけでは足りなくなる。そこで、十以上の数を表記する「数字」として、ラテン文字アルファベット大文字を用いる事が多い。なお、漢数字を使う際には、アルファベット大文字に相当する十干を用いて、十を「甲」、十一を「乙」、十二を「丙」…と表記することになる。

例えば十六進法であれば、「数字」として

0123456789ABCDEF

を用い、ABCDEFはそれぞれ十進法の自然数10、11、12、13、14、15を表す。

従って例えば2F3.A7

を表し、これは十進法の755.652344にあたる。

また、十六進法では、以下の性質が満たされる。

  • 整数では、十六倍する毎に一桁増え、十六分割する毎に一桁減る。
  • 一桁で表せる数は十進表記の16-1 = 15(F)までで、16以降は二桁以上を必要し、256以降は三桁以上を必要とする。
  • 小数では、十六分割する毎に一桁増え、十六倍する毎に一桁減る。
  • 単位は、32や48といった16の数ではなく、256や4096といった16の数で設定される。

基数の明記[編集]

同じ「312.02」でも、四進法と十進法では値が異なる。そこで四進法であることを明記するため、Nが十未満である場合には、一桁の下付き数字を付けて

312.024

或いは数字本体か下付きのどちらかを括弧で

(312.02)4
312.02(4)

と表記する事もある。

なお、Nが以上である場合には、十以上の数字にアルファベット大文字を充てている事から、アルファベット大文字を用いた

(864)A = (600)C = (360)G = (234)K
864(A) = 600(C) = 360(G) = 234(K)

とも表記できる。また、

(864)10 = (600)12 = (360)16 = (234)20
864(10) = 600(12) = 360(16) = 234(20)

というように十を「A」ではなく「10」、十二を「C」ではなく「12」というように十進表記の複数桁で表記する方も一般的である。

また、括弧書きではなく「N進法」という語を付ける場合には、前付きでも後付きのどれでも通じる。例えば、「十二進法の600」は、"duodecimal 600" や "dozenal 600"の前付きでも、"600 duodecimal" や "600 dozenal"の後付きの両方とも可能である。この場合、"duodecimal six zero zero"や"six zero zero dozenal"というように数字を棒読みする。

コンピューターで特に重要性の高い二進数、八進数、十進数、十六進数には、固有の表記もある。ただし、コンピューター言語により表記方法が若干異なる場合もある。

  • 0b101 : (101)2の意味
  • 0o306 : (306)8の意味
  • 0d248 : (248)10の意味
  • 0xF4C : (F4C)16の意味

各進法への置換例[編集]

以下の表に、代表的なN進法の位数と換算値を掲載する。底の特徴として、二と十六は「二の冪数」、三と九は「奇数」「三の冪数」、六と十は「奇数の二倍」、十二と二十は「奇数の四倍」が挙げられる。

各進法の位数
進法 整数第五位 整数第四位 整数第三位 整数第二位 整数第一位 小数第一位 小数第二位 小数第三位
二進法 (16)10の位 (8)10の位 (4)の位 (2)10の位 1の位 (1/2)10の位 (1/4)10の位 (1/8)10の位
三進法 (81)10の位 (27)10の位 (9)10の位 (3)10の位 1の位 (1/3)10の位 (1/9)10の位 (1/27)10の位
六進法 (1296)10の位 (216)10の位 (36)10の位 (6)10の位 1の位 (1/6)10の位 (1/36)10の位 (1/216)10の位
十進法 (10000)10の位 (1000)10の位 (100)10の位 (10)10の位 1の位 (1/10)10の位 (1/100)10の位 (1/1000)10の位
十二進法 (20736)10の位 (1728)10の位 (144)10の位 (12)10の位 1の位 (1/12)10の位 (1/144)10の位 (1/1728)10の位
十六進法 (65536)10の位 (4096)101の位 (256)10の位 (16)10の位 1の位 (1/16)10の位 (1/256)10の位 (1/4096)10の位
二十進法 (16万)10の位 (8000)10の位 (400)10の位 (20)10の位 1の位 (1/20)10の位 (1/400)10の位 (1/8000)10の位
各進法での整数の表記
二進表記 三進表記 六進表記 十進表記 十二進表記 十六進表記 二十進表記
0 0 0 0 0 0 0
1 1 1 1 1 1 1
10 2 2 2 2 2 2
11 10 3 3 3 3 3
100 11 4 4 4 4 4
101 12 5 5 5 5 5
110 20 10 6 6 6 6
111 21 11 7 7 7 7
1000 22 12 8 8 8 8
1001 100 13 9 9 9 9
1010 101 14 10 A A A
1011 102 15 11 B B B
1100 110 20 12 10 C C
1101 111 21 13 11 D D
1110 112 22 14 12 E E
1111 120 23 15 13 F F
10000 121 24 16 14 10 G
10001 122 25 17 15 11 H
10010 200 30 18 16 12 I
10011 201 31 19 17 13 J
10100 202 32 20 18 14 10
10101 210 33 21 19 15 11
11011 1000 43 27 23 1B 17
11110 1010 50 30 26 1E 1A
100100 1100 100 36 30 24 1G
111100 2020 140 60 50 3C 30
1010001 10000 213 81 69 51 41
1100100 10201 244 100 84 64 50
10010000 12100 400 144 100 90 74
11011000 22000 1000 216 160 D8 AG
100000000 100111 1104 256 194 100 CG
101101000 111100 1400 360 260 168 I0
110010000 112211 1504 400 294 190 100
1011011001 1000000 3213 729 509 2D9 1G9
1111101000 1101001 4344 1000 6B4 3E8 2A0
10001111110 1120121 5154 1150 7BA 47E 2HA
11011000000 2101000 12000 1728 1000 6C0 468
1000000000000 12121201 30544 4096 2454 1000 A4G
1100110100001 100000000 50213 6561 3969 19A1 G81
1111101000000 101222022 101012 8000 4768 1F40 1000
10000111000000 102212000 104000 8640 5000 21C0 11C0

このように、数字の種類が少なければ桁数が多くなり、逆に桁数が少なければ数字の種類が多くなる。例えば、六進法では「5154個」、十進法では「1150個」で共に四桁になる個数が、二進法だと「10001111110個」で十一桁、三進法だと「1120121個」で七桁に増え、十二進法では「7BA個」、二十進法では「2HA個」で共に三桁に減る。同様に、三進法では「100000000円」と表示され大威張りできるような金額は、六進法では「50213円」、九進法でも「10000円」と表示されるが、逆に十進法だと「6561円」であり、九進法以前が五桁以上に対して、十進法以降は四桁以下になる。

小数の数列(0.1ずつ加算)
二進表記 三進表記 六進表記 十進表記 十二進表記 十六進表記 二十進表記
0 0 0 0 0 0 0
0.1 0.1 0.1 0.1 0.1 0.1 0.1
1 0.2 0.2 0.2 0.2 0.2 0.2
1.1 1 0.3 0.3 0.3 0.3 0.3
10 1.1 0.4 0.4 0.4 0.4 0.4
10.1 1.2 0.5 0.5 0.5 0.5 0.5
11 2 1 0.6 0.6 0.6 0.6
11.1 2.1 1.1 0.7 0.7 0.7 0.7
100 2.2 1.2 0.8 0.8 0.8 0.8
100.1 10 1.3 0.9 0.9 0.9 0.9
101 10.1 1.4 1 0.A 0.A 0.A
101.1 10.2 1.5 1.1 0.B 0.B 0.B
110 11 2 1.2 1 0.C 0.C
110.1 11.1 2.1 1.3 1.1 0.D 0.D
111 11.2 2.2 1.4 1.2 0.E 0.E
111.1 12 2.3 1.5 1.3 0.F 0.F
1000 12.1 2.4 1.6 1.4 1 0.G
1000.1 12.2 2.5 1.7 1.5 1.1 0.H
1001 20 3 1.8 1.6 1.2 0.I
1001.1 20.1 3.1 1.9 1.7 1.3 0.J
1010 20.2 3.2 2 1.8 1.4 1
1010.1 21 3.3 2.1 1.9 1.5 1.1
1011 21.1 3.4 2.2 1.A 1.6 1.2
各進法での負の整数
二進表記 三進表記 六進表記 十進表記 十二進表記
−110 −20 −10 −6 −6
−101 −12 −5 −5 −5
−100 −11 −4 −4 −4
−11 −10 −3 −3 −3
−10 −2 −2 −2 −2
−1 −1 −1 −1 −1
0 0 0 0 0

可分性[編集]

en:Divisibility ruleといえば通常は整数の範囲で割り切れるかどうかを問う整除の問題であるが、以下では有限小数として割り切れるかどうかについて述べる。

単位分数の可分性は、N の約数にどれが含まれているかで決まるが、より明確には N を素因数分解した時にどの素因数が含まれているかで決まる。従って、単に約数が多いというだけではなく、約数が素因数分解した時にどんな数になるかも見なければならない。

不可分の例として:
八進法1/31/5 も割り切れない」
十進法1/3 が割り切れない」
十二進法1/5 が割り切れない」
十五進法は 1/2 も 1/4 も割り切れない」
十六進法は 1/3 も 1/5 も割り切れない」
が挙げられる。これらの要因は、十六奇数(3や5など)が約数に含まれていないから、十五偶数(2や4など)が約数に含まれていないから、には3が約数に含まれていないから、十二には5が約数に含まれていないからである。各数を素因数分解すると、八は23、十六は24、九は32、十五は3×5、十は2×5、十二は22×3となる。

具体的に見ると、四進法八進法十六進法は、Nの約数が2の冪数しか無いため、「2でしか割り切れない」。これらは「1/奇数」に変換できる小数が無く、1/3 や 1/5 といった奇数分割は不可能で、偶数でも 1/6{六分割。1÷(2×3)} や 1/A{十分割。1÷(2×5)}や 1/C{十二分割。1÷(22×3)}や 1/K{二十分割。1÷(22×5)}といった「1 ÷ (2p×奇数)」は割り切れない。同じく、九進法は、Nの約数が3しか無いため、「3でしか割り切れない」。こちらは「1/偶数」に変換できる小数が無く、1/2 や 1/4 や 1/6 といった偶数分割は不可能で、奇数でも因数が3だけでない限りは割り切れない。これら八進法や九進法や十六進法に共通する要素は、冪数進法で「素因数が一つだけ」である。

逆に、六進法は「2と3でしか割り切れない」、十進法は「2と5でしか割り切れない」が、可分性の基礎である素因数の数は、八進法や十六進法といった「二の冪数進法」を上回る。素因数分解すると、は「2×3」、は「2×5」と素因数を二つ持っているのに対して、は「23」、十六は「24」で素因数が「2」だけしか無い。十六の約数である2, 4, 8は、全て2の冪数に過ぎない。小数を既約分数に変換すると、六進法はm/3、十進法はm/5の小数が現れるのに対して、八進法など「二の冪数進法」は「m/奇数」となる小数が現れないし、九進法は「三の冪数進法」なので「m/偶数」となる小数が現れない。

Nの平方数も、三十六である(100)6は4(=22)でも3でも9(=32)でも二十七(=33)でも割り切れる(※二十七分割は (100÷43 = 1.2)6 で有限小数となる)し、である(100)10は4(=22)でも5でも二十五(=52)でも割り切れるのに対して、六十四である(100)8二百五十六である(100)16は2の冪数でしか割り切れない。

従って、六進法、十進法、十二進法、二十進法などは、8がNの約数に含まれていないが、1÷8 は割り切れる。これは、8が23であり、Nが偶数なので2が約数に含まれているからである。また、六進法や十二進法は、9がNの約数に含まれていないが、1÷9 は割り切れる。これは、9が32であり、3がNの約数に含まれているからである。

このように、「約数の多さ」ではなく、「素因数の多さ」が可分性を広げるという事である。

小数の既約分数への変換(含仮分数)
小数 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.A
六進法 1/6 1/3 1/2 2/3 5/6 1 7/6 4/3 3/2 5/3
八進法 1/8 2/4 3/8 1/2 5/8 3/4 7/8 1 9/8 5/4
九進法 1/9 2/9 1/3 4/9 5/9 2/3 7/9 8/9 1 A/9
十進法 1/A 1/5 3/A 2/5 1/2 3/5 7/A 4/5 9/A 1
各進法の小数除算
除数 除数の
素因数分解
六進法 八進法 九進法 十進法 十二進法 十五進法 十六進法 二十進法
1 ÷ 2 素数 0.3 0.4 0.4444… 0.5 0.6 0.7777… 0.8 0.A
1 ÷ 3 素数 0.2 0.2525… 0.3 0.3333… 0.4 0.5 0.5555… 0.6D6D…
1 ÷ 4 22 0.13 0.2 0.2222… 0.25 0.3 0.3B3B… 0.4 0.5
1 ÷ 5 素数 0.1111… 0.1463 0.1717… 0.2 0.2497 0.3 0.3333… 0.4
1 ÷ 6 2×3 0.1
(1÷106
0.12525… 0.1444… 0.1666… 0.2 0.2777… 0.2AAA… 0.36D6D…
1 ÷ 7 素数 0.0505…
(1÷116
0.1111… 0.125 0.142857 0.186A35 0.2222… 0.249 0.2H2H…
1 ÷ 8 23 0.043
(1÷126
0.1
(1÷108
0.1111… 0.125 0.16 0.1D1D… 0.2 0.2A
1 ÷ 9 32 0.04
(1÷136
0.0707…
(1÷118
0.1
(1÷109
0.1111… 0.14 0.1A 0.1C7 0.248HFB
1 ÷ A 2×5 0.0333…
(1÷146
0.06314
(1÷128
0.0808…
(1÷119
0.1
(1÷10A
0.12497 0.1777… 0.1999… 0.2

※ 割り切れない小数の循環節は下線で示す。

「素因数が一つだけ」と「素因数が複数」の逆数も、以下のように異なる。「2の冪数」進法の小数は、「素因数が複数」のN進法に換算すると、小数の末尾は奇数単偶数になる。奇数進法の小数は、「素因数が2と奇数」のN進法に換算すると、小数の末尾は偶数になる。なお、2と3の冪数の関係を判り易くするため、分子・分母の換算値や冪数は六進数で表記し、十進数を下付き(A)で副記する。

28の逆数
N進法 Nの素因数分解 小数の表記 分子の数値 分母の数値 分子の素因数分解 分母の素因数分解
十六進法 24 0.01 1 1104
256(A)
- 212
(28)(A)
六進法 2×3 0.00050213 50213
6561(A)
100000000
1679616(A)
312
(38)(A)
212×312
(28×38)(A)
十進法 2×5 0.00390625 12212241
390625(A)
13531202544
100000000(A)
512
(58)(A)
212×512
(28×58)(A)
38の逆数
N進法 Nの素因数分解 小数の表記 分子の数値 分母の数値 分子の素因数分解 分母の素因数分解
九進法 32 0.0001 1 50213
6561(A)
- 312
(38)(A)
六進法 2×3 0.00001104 1104
256(A)
100000000
1679616(A)
212
(28)(A)
212×312
(28×38)(A)
十二進法 22×3 0.00031B14 1223224
65536(A)
110400000000
429981696(A)
224
(216)(A)
224×312
(216×38)(A)

表記の一意性に関して[編集]

この節では特に断りがない限り十進数について述べるが、他の基数についても同様である。

実数の N 進表記は一意ではない。よく知られているように、

1=1.000…=0.999

である。また、以下のように、上位桁に不要な0を付け加えることもできる

0013=13

通常は「0013」のような表記は許さないとする事が多いが、コンピューターなどでは、最大で4桁の整数値であることを示すため、あえて「0013」のような表記をする場合がある。

以上のような例をのぞくと0以外の実数は一意に表現できる。

しかし0のみは

+0」、「-0

の二通りの表記が可能である(いわゆる負のゼロの問題)。 これが原因で、コンピューター・プログラムでは0のみ例外処理を求められる場合がある。

また、一般には0は1桁の数とされているが、ルールを優先し1桁の数と認めない場合もある(覆面算#ルール)。

表計算ソフトの列名などで用いられている、A, B, ..., Z, AA, AB, ... のような形式は、位取り記数法の一種と考えることができ、かつ0より大きい整数を一意に表せる。(en:Bijective numeration)

底の変換アルゴリズム[編集]

与えられた非負整数 T を、記号を数字として用いた N 進表記

で表すには、以下のアルゴリズムを用いればよい。

なお、このアルゴリズムは、 MNによりM 進表記されている TN 進表記に書き換えるときに使われる事が多いので、このアルゴリズムを底の変換アルゴリズムと呼ぶ。

  • 入力T を受け取る。
  • T=0 なら を出力して停止。
  • iを0に初期化
  • while(T≠0){
    • TN で割った商を T' 、余りを k とし、 とする。
    • TT'、i←i+1
  • }
  • r←i-1
  • を出力

なお、T >0に対しては等式

が知られている(なお、添え字を0から始めているので、T の桁数はr +1) 。ここで床関数である。

底の変換例[編集]

十進法→五進法への変換

十進法の 5213 を五進法に置き換える場合、5で割っていき、商が5未満になった時点で止める。余り無しの場合は 0 を明記する。商が5未満になったら、最後の商を先頭にして、最初の余りを末尾にして列べる。

  • 5213 ÷ 5 = 1042 余り 3
  • 1042 ÷ 5 = 208 余り 2
  • 208 ÷ 5 = 41 余り 3
  • 41 ÷ 5 = 8 余り 1
  • 8 ÷ 5 = 1 余り 3
  • 1 ÷ 5 = 0 余り 1

から、5213 = 3 + 2 × 5 + 3 × 52 + 1 × 53 + 3 × 54 + 1 × 55 となるので、五進表記では 131323 と表すことができる。また、55 = 3125, 56 = 15625 であるから、55 ≤ 5213 < 56 が成り立っているので、対数を取ると

となり、

が分かる。

十進法以外→十進法以外への変換

十進法以外のN進法も同様で、例えば38に当たる六進法の 50213 を十六進法に置き換える場合も、商が24(6) = 10(G) を下回るまで24で割っていく。

  • 50213 ÷ 24 = 1522 余り 1
  • 1522 ÷ 24 = 41 余り 14
  • 42 ÷ 24 = 1 余り 13

以上より、1, 13, 14, 1の列になり、13(6) = 9(G)、14(6) = A(G) なので、十六進法では 19A1 となる。

同値の整数

二百七十の表記は、以下の通りになる。(便宜上、計算式を十進法で表記する)

  • 二進法 (100001110)2 : 270 = 256 + 14 = 28 + 23 + 22 + 21
  • 六進法 (1130)6 : 270 = 216 + 54 = 1×63 + 1×62 + 3×61
  • 八進法 (416)8 : 270 = 256 + 14 = 4×82 + 1×81 + 6
  • 九進法 (330)9 : 270 = 243 + 27 = 3×92 + 3×91
  • 十進法 (270)10 : 270 = 200 + 70 = 2×102 + 7×101
  • 十二進法 (1A6)12 : 270 = 144 + 126 = 1×122 + 10×121 + 6
  • 十六進法 (10E)16 : 270 = 256 + 14 = 1×161 + 0×161 + 14
  • 十八進法 (F0)18 : 270 = 270 + 0 = 15×181
  • 二十進法 (DA)20 : 270 = 260 + 10 = 13×201 + 10
意味する数

整数「234」の意味する数は、以下の通りになる。(便宜上、計算式を十進法で表記する)

  • 六進法 (234)6 : (94)10 = 72 + 18 + 4 = 2×62 + 3×61 + 4
  • 八進法 (234)8 : (156)10 = 128 + 24 + 4 = 2×82 + 3×81 + 4
  • 九進法 (234)9 : (193)10 = 162 + 27 + 4 = 2×92 + 3×91 + 4
  • 十進法 (234)10 : (234)10 = 200 + 30 + 4 = 2×102 + 3×101 + 4
  • 十二進法 (234)12 : (328)10 = 288 + 36 + 4 = 2×122 + 3×121 + 4
  • 十六進法 (234)12 : (564)10 = 512 + 48 + 4 = 2×162 + 3×161 + 4
  • 十八進法 (234)18 : (706)10 = 648 + 54 + 4 = 2×182 + 3×181 + 4
  • 二十進法 (234)20 : (864)10 = 800 + 60 + 4 = 2×202 + 3×201 + 4

小数「0.5」の意味する数は、以下の通りになる。(便宜上、計算式を十進法で表記する)

  • 六進法 (0.5)6 : (5/6)10 = 十進法で 0.8333
  • 八進法 (0.5)8 : (5/8)10 = 十進法で 0.625
  • 九進法 (0.5)9 : (5/9)10 = 十進法で 0.5555
  • 十進法 (0.5)10 : (5/10)10 = 1/2
  • 十二進法 (0.5)12 : (5/12)10 = 十進法で 0.41666
  • 十六進法 (0.5)16 : (5/16)10 = 十進法で 0.3125
  • 十八進法 (0.5)18 : (5/18)10 = 十進法で 0.2777
  • 二十進法 (0.5)20 : (5/20)10 = 1/4 = 十進法で 0.25
四則計算を含めた変換

上記の通り、十二進法の 500 は七百二十であり、十進法では 720 と表記される。従って、十二進法の"500 ÷ 14 = 39"は、以下のように変換される。

  • 十二進法 : (500)12 ÷ (14)12 = (39)12
  • 六進法に換算 : (3200)6 ÷ (24)6 = (113)6
  • 十進法に換算 : (720)10 ÷ (16)10 = (45)10
  • 十六進法に換算 : (2D0)16 ÷ (10)16 = (2D)16
  • 十八進法に換算 : (240)18 ÷ (G)18 = (29)18
  • 二十進法に換算 : (1G0)20 ÷ (G)20 = (25)20

“1034 ÷ 11”の商も、以下のようになる。

  • 六進法 (1034)6 ÷ (11)6 = {1×63 + 0×62 + 3×61 + 4} ÷ {1×6 + 1} = (54)6
    • 十進法に換算:238 ÷ 7 = 34
  • 十進法 (1034)10 ÷ (11)10 = {1×103 + 0×102 + 3×101 + 4} ÷ {1×10 + 1} = (94)10
  • 十二進法 (1034)12 ÷ (11)12 = {1×123 + 0×122 +3×121 + 4} ÷ {1×12 + 1} = (B4)12
    • 十進法に換算:1768 ÷ 13 = 136
  • 二十進法 (1034)20 ÷ (11)20 = {1×203 + 0×202 + 3×201 + 4} ÷ {1×20 + 1} = (J4)20
    • 十進法に換算:8064 ÷ 21 = 384
同値の小数への変換

小数を別のN進法に変換する場合には、以下の経過を践む。

  1. 変換前と変換後の冪数を列挙する。
  2. 小数点以下の元の桁数に合わせて、冪数を掛ける。
  3. 端数処理をする。
  4. 整数と同じく、冪数を掛けた結果を、変換後のNで割っていく。
  5. 変換後のNで割った結果を最後の商→最初の余りの順に列挙する。この列が同値の小数となる。

(例)十進数0.531441 → 十二進数六桁

  1. 十進数 1000000 → 2985984(十の六乗→十二の六乗)
  2. 531441×2.985984 = 1586874.322944
  3. 1586874.322944 → 1586874
  4. 1586874÷12 = 132239 余り6
    • 132239÷12 = 11019 余り11
    • 11019÷12 = 918 余り3
    • 918÷12 = 76 余り6
    • 76÷12 = 6 余り4
  5. 11(A) = B(C) なので、6463B6(C) を列べる。

以上より、十進数0.531441 は、十二進数では約0.6463B6 となる。

(例)十進数0.124053 → 六進数九桁

  1. 十進数 1000000 → 10077696(十の六乗→六の九乗)
  2. 124053×10.077696 = 1250168.42189
    • 変換前の小数が六桁なので、乗数も小数点以下を六桁にする。
  3. 1250168.42189 → 1250168
  4. 1250168÷6 = 208361 余り2
    • 208361÷6 = 34726 余り5
    • 34726÷6 = 5787 余り4
    • 5787÷6 = 964 余り3
    • 964÷6 = 160 余り4
    • 160÷6 = 26 余り4
    • 26÷6 = 4 余り2
  5. 42443452(6)を列べる。分母が 10077696(A) = 1000000000(6) なので、小数点以下は9桁になり、先頭に0が1つ加わる。

よって、十進数0.124053 は、六進数では約0.042443452 となる。

同値の小数

十進法小数 0.625 は、六進法では 0.343 となり、十二進法では 0.76 となり、二十進法では 0.CA となる。いずれも分数に換算すると十進法の 5/8 となる小数であるが、計算式は以下の通りになる。

  • 六進法 (0.343)6 = (343/1000)6 = 3×6-1 + 4×6-2 + 3×6-3 = (135/216)10 = (5/8)10
  • 十進法 (0.625)10 = (625/1000)10 = 6×10-1 + 2×10-2 + 5×10-3 = (625/1000)10 =(5/8)10
  • 十二進法 (0.76)12 = (76/100)12 = 7×12-1 + 6×12-2 = (90/144)10 = (5/8)10
  • 二十進法 (0.CA)20 = (CA/100)20 = 12×20-1 + 10×20-2 = (250/400)10 = (5/8)10

六進法の小数 0.332 は、十二進法では 0.714 となる。分数に換算すると十進法の 16/27(= 24/33)となる小数であるが、こちらの計算式は以下の通りになる。

  • 六進法 (0.332)6 = (332/1000)6 = 3×6-1 + 3×6-2 + 2×6-3 = (128/216)10 = (16/27)10
  • 十二進法 (0.714)12 = (714/1000)12 = 7×12-1 + 1×12-2 + 4×12-3 = (1024/1728)10 = (16/27)10

十進法の小数 0.36 は、二十進法では 0.74 となる。分数に換算すると十進法の 9/25(= 32/52)となる小数であるが、こちらの計算式は以下の通りになる。

  • 十進法 (0.36)10 = (36/100)10 = 3×10-1 + 6×10-2 = (36/100)10 = (9/25)10
  • 二十進法 (0.74)20 = (74/100)20 = 7×20-1 + 4×20-2 = (144/400)10 = (9/25)10

複数の基数の混在[編集]

十進法では、機械的に倍、倍、倍、一万倍…の順で増える。同じく、十二進法では、機械的に十二倍、百四十四倍、千七百二十八倍、二万七百三十六倍…の順で増える。

しかし、底を2つに分ける場合がある。十進法に対して、二・五進法(十が五進命数法で「二五」なので、区別するため二と五の間に点が必要)ではの2つの底があるので、桁が上がる度に五倍→二倍→五倍→二倍…と交互になり、「十の冪数」と「十の冪数の五倍」が交互に現れる。これはそろばんと同じく一桁が「一の位」4つと「五の位」1つで構成される方法だが、計算機にも応用されている。

バビロニア六十進法もそろばんに似た方法で、一桁が「一の位」9つと「十の位」5つで構成されており、整数は十倍→倍→十倍→六倍と交互になり、小数は六分の一十分の一→六分の一→十分の一と交互になる。この方法では、整数第二位は「六十の位」と「六百の位」に分かれ、整数第三位は「三千六百の位」と「三万六千の位」に分かれ、小数第一位は「六分の一の位」と「六十分の一の位」に分かれ、小数第二位は「三百六十分の一の位」と「三千六百分の一の位」に分かれている。

これら二・五進法や六十進法のように複数の底が設定されている場合には、" : " などの区切り符号を付ける。例えば、六十進法で十進法を補助とする場合には、58 → 59 → 1:00 → 1:01 → 1:02 …の順に数列が進む。

日本の通貨(硬貨と紙幣)には、昇順で一円→五円→十円→五十円→百円→五百円→千円→五千円→一万円があるので、通貨を一つの単位と見れば、これは前述の二・五進法である。この配列を見ると、一(100)、十(101)、百(102)、千(103)、一万(104)が十の冪数であり、五、五十、五百、五千が「十の冪数の五倍」である。

英語表記[編集]

「基数 N 」を英語で、base N という。特定のNに関しては倍数接頭辞を基に名称がついているが、名称の付け方は不規則である。通常、接尾辞が -ary である語は、ラテン語の -arius (~の、~に関する) に由来して、「N 個一組」「N を単位とする」「N 個から成る」を意味する語である。一方、接尾辞が -imal である語は、ラテン語の -imus に由来して、「第 N」「N 分の一」を意味する語である。

以下は「基数 N 」、もしくはより明解に「N 個一組」「N を単位とする」「N 個から成る」という意味の形容詞である。

  • :binary
  • :ternary
  • 四:quaternary
  • :quinary
  • :senary
  • :septenary
  • :octonary, octal
  • 九:novenary
  • :denary, decimal
  • 十二:duodenary, duodecimal
  • 十五:quindenary, quindecimal, pentadecimal
  • 十六:sedenary, sedecimal, hexadecimal
  • 十八:octodenary, octodecimal
  • 二十:vicenary, vigesimal
  • 三十:tricenary, trigesimal
  • 六十:sexagenary, sexagesimal

これらを使い、a base-two numberで「二進数」、the base-two numeral systemで「二進法」を表す名詞となる。 同様にa binary numberthe binary numeral systemでもそれぞれ「二進数」、「二進法」を表す名詞となる。他の基数も同様。

p進数[編集]

N 進表記と関連が深い概念として、素数 p 毎に定まる p 進数というものもある。 名称は本稿で解説しているN 進表記の別名であるN 進数と同一であるものの、別概念ではある。ただし両者は非常に関連があり、整数の p進表記を(可算)無限桁の自然数の範囲に拡張したものが p進整数で、さらにそこに有限桁の小数部分を許したものが p進数である。ただし「無限桁の整数」(の一部は有理数として再解釈できるもののほとんど)は本稿で扱う普通の数(実数)とは異なる。

脚注・参照[編集]

  1. ^ 専門な注であるが、以下、太字で書かれた数字はシンタックスの体系内の記号であり、太字ではない数字はセマンティクスを記述するメタな記号である。

参考文献[編集]

関連項目[編集]

総合
通常のN進法
特殊なN進法
  • 一進法(桁上がりが無い)
  • 二五進法(にごしんほう、二十五進法ではない。桁上がりが複数段階)
  • 六十進法:sexagesimal(桁上がりが複数段階)
  • e進法
その他