三十六進法
三十六進法(さんじゅうろくしんほう)とは、36を底(てい)とし、底およびその冪を基準にして数を表す方法である。底である 36 は Microsoft Excel の BASE 関数や、Python の拡張モジュール・NumPy の base_repr 関数の基数パラメータに指定できる最大値である[1][2]。
記数法
[編集]三十六進記数法とは、36 を底とする位取り記数法である。慣用に従い、通常のアラビア数字は十進数とし、三十六進記数法の表記は括弧および下付の 36 で表す。三十六進記数法で表された数を三十六進数と呼ぶ。
一般には、0, 1, …, 8, 9(アラビア数字、10種類)および、A - Z(ISO基本ラテンアルファベット[3]、26種類)の合計36種類の文字で数値を表わす。 A - Z は、それぞれ十進法での 10 - 35 を表す。下表の値は Microsoft Excel の BASE 関数の実行結果に準拠する。
0 | 0 | 9 | 9 | 18 | I | 27 | R |
---|---|---|---|---|---|---|---|
1 | 1 | 10 | A | 19 | J | 28 | S |
2 | 2 | 11 | B | 20 | K | 29 | T |
3 | 3 | 12 | C | 21 | L | 30 | U |
4 | 4 | 13 | D | 22 | M | 31 | V |
5 | 5 | 14 | E | 23 | N | 32 | W |
6 | 6 | 15 | F | 24 | O | 33 | X |
7 | 7 | 16 | G | 25 | P | 34 | Y |
8 | 8 | 17 | H | 26 | Q | 35 | Z |
右端あるいは小数点で、一の桁を表す。数字の意味する数は、左に一桁ずれると三十六倍になり、右に一桁ずれると三十六分の一になる。(24)36 という表記において、左の「2」は 七十二 を表し、右の「4」は 四 を表し、合わせて 七十六 を表す。
同様に、(M0)36 は 22×361 + 0×360 = 七百九十二 を表し、(B7)36 = 11×361 + 7×360 = 四百三 を表す。
アルファベットの I と数字の 1 、およびアルファベットの O と数字の 0 は混同しやすいため、筆記の場合は、斜線付きゼロを使うなど工夫が必要である。また、印字の場合でも、区別が付きにくいフォントの使用を避ける必要がある。
1296で10036となる。
六進表記から三十六進表記への変換
[編集]三十六進法は、単に「数字とアルファベットをすべて使った[4]表記法」という以外に、以下の表のとおり、六進法による表記の二桁を一桁で表現できるという特長を有する。
三十六進表記 | 六進表記 | 十進表記 |
---|---|---|
(0)36 | (0)6 | (0)10 |
(1)36 | (1)6 | (1)10 |
(2)36 | (2)6 | (2)10 |
(3)36 | (3)6 | (3)10 |
(4)36 | (4)6 | (4)10 |
(5)36 | (5)6 | (5)10 |
(6)36 | (10)6 | (6)10 |
(7)36 | (11)6 | (7)10 |
(8)36 | (12)6 | (8)10 |
(9)36 | (13)6 | (9)10 |
(A)36 | (14)6 | (10)10 |
(B)36 | (15)6 | (11)10 |
(C)36 | (20)6 | (12)10 |
(D)36 | (21)6 | (13)10 |
(E)36 | (22)6 | (14)10 |
(F)36 | (23)6 | (15)10 |
(G)36 | (24)6 | (16)10 |
(H)36 | (25)6 | (17)10 |
(I)36 | (30)6 | (18)10 |
(J)36 | (31)6 | (19)10 |
(K)36 | (32)6 | (20)10 |
(L)36 | (33)6 | (21)10 |
(M)36 | (34)6 | (22)10 |
(N)36 | (35)6 | (23)10 |
(O)36 | (40)6 | (24)10 |
(P)36 | (41)6 | (25)10 |
(Q)36 | (42)6 | (26)10 |
(R)36 | (43)6 | (27)10 |
(S)36 | (44)6 | (28)10 |
(T)36 | (45)6 | (29)10 |
(U)36 | (50)6 | (30)10 |
(V)36 | (51)6 | (31)10 |
(W)36 | (52)6 | (32)10 |
(X)36 | (53)6 | (33)10 |
(Y)36 | (54)6 | (34)10 |
(Z)36 | (55)6 | (35)10 |
六進表記から三十六進表記に変換する方法を、以下に示す。
整数部分
[編集]- 六進表記を右から順に二桁ずつ区切る。最後(最左部分)が二桁未満のときは、空いた部分(左側)には全て0があるとみなす。
- (34152)6 → (3, 41, 52)6 → (03, 41, 52)6
- 各部分を三十六進表記に変換する。
- (03)6 = (3)36 , (41)6 = (P)36 , (52)6 = (W)36
- 得られた三十六進表記を並べて (3PW)36 が得られる。
この方法は桁数に拘らず通用する。例えば、(502145010321413)6 は (05, 02, 14, 50, 10, 32, 14, 13)6 であるから、(52AU6KA9)36 となる。
小数部分
[編集]小数部分の変換方法は、次のとおり。
- 六進表記を小数点を基準にして左から順に二桁ずつ区切る。最後(最右部分)が二桁未満のときは、空いた部分(右側)には全て0があるとみなす。
- (0.1203512)6 → (0., 12, 03, 51, 2)6 → (0., 12, 03, 51, 20)6
- 各部分を三十六進表記に変換する。
- (12)6 = (8)36 , (03)6 = (3)36 , (51)6 = (V)36 , (20)6 = (C)36
- 得られた三十六進表記を並べて (0.83VC)36 が得られる。
したがって、(34152.1203512)6 = (3PW.83VC)36 である。この方法は桁数に関わらず通用する。