十六進法

出典: フリー百科事典『ウィキペディア(Wikipedia)』
16進法から転送)
移動先: 案内検索

十六進法(じゅうろくしんほう)とは、16(てい)とし、底およびそのを基準にして数を表す方法である。

記数法

十六進記数法とは、16 を底とする位取り記数法である。慣用に従い、通常のアラビア数字は十進表記とし、十六進記数法での表記は ( )16(括弧および下付きの 16)で表す。慣例として、十六進記数法で表された数を「十六進数」と呼ぶことがあるが、「p進数における p=16 のとき」という意味ではない。

一般には、16 個の数字 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F を用いる。A から F は、それぞれ十進での 10 から 15 を表す。

  • (50)16 は 5×161 + 0×160 = 80 を表す。
  • (B4)16 = 11×161 + 4×160 = 180 を表す。

コンピュータでの十六進表記

コンピュータでは、データをビットオクテットを単位として表すことが多い。 それぞれ二進表記の 1 桁、8 桁で表現できる。後者には、十六進表記がよく用いられ、二進表記の 4 桁が 1 桁で表現できるので、二進表記より短く表すことができる。 1 オクテットは、2 桁の十六進表記 (0x00 - 0xff) で表現することができる。これは、16-16進表記と考えることができ、256進表記の特殊な表現であるともいえる。

十六進表記の 1 桁はニブルとも呼ばれる。

表記方法

十六進表記はよく使われるので、プログラム言語ではリテラルとして特別な表記が準備されていることが多い。一般に、大文字の A-F と小文字の a-f を区別しない。 (1000)16</sup> の表記の例を挙げる。

読み方は文字並びのまま「ぜろエックスいちぜろぜろぜろ」などと読む。慣用では「ヘキサの千(せん)」もしくは「千(せん)ヘキサ」と言った読み方も行われているが、数学的には正しくない。

上記の数字に付く h や x は英語で十六進法を意味する hexadecimal から取ったものである。十六進表記であることを明示し、b(二進法)、o(八進法)、d(十進法)などと区別するために用いる。

初期の表記法

AFの文字を用いて9以上の数字を表現する方法はコンピューター黎明期にはまだ一般的ではなかった。

二・八・十進表記との対応

16, 10, 8 進表記 二進表記
(0)16 = (0)10 = (0)8 0 0 0 0
(1)16 = (1)10 = (1)8 0 0 0 1
(2)16 = (2)10 = (2)8 0 0 1 0
(3)16 = (3)10 = (3)8 0 0 1 1
(4)16 = (4)10 = (4)8 0 1 0 0
(5)16 = (5)10 = (5)8 0 1 0 1
(6)16 = (6)10 = (6)8 0 1 1 0
(7)16 = (7)10 = (7)8 0 1 1 1
(8)16 = (8)10 = (10)8 1 0 0 0
(9)16 = (9)10 = (11)8 1 0 0 1
(A)16 = (10)10 = (12)8 1 0 1 0
(B)16 = (11)10 = (13)8 1 0 1 1
(C)16 = (12)10 = (14)8 1 1 0 0
(D)16 = (13)10 = (15)8 1 1 0 1
(E)16 = (14)10 = (16)8 1 1 1 0
(F)16 = (15)10 = (17)8 1 1 1 1

二進表記から十六進表記への変換

二進表記から十六進表記に変換する方法を、以下に示す。

整数部分

  1. 二進表記を右から順に 4 桁ずつ区切る。最後が 4 桁未満のときは、空いた部分(左側)には全て 0 があるとみなす。
    • (111010)2 → (11, 1010)2 → (0011, 1010)2
  2. 各部分を 十六進表記に変換する。
    • (0011)2</sup> = (3)16</sup>, (1010)2</sup> = (A)16
  3. 得られた十六進表記を並べて (3A)16 が得られる。

この方法は何桁であっても通用する。例えば、(100110010111010)2 は (0100, 1100, 1011, 1010)2 であるから、 (4CBA)16 となる。

小数部分

小数部分の変換方法は、次のとおり。

  1. 二進表記を小数点を基準にして左から順に 4 桁ずつ区切る。最後が 4 桁未満のときは、空いた部分(右側)には全て 0 があるとみなす。
    • (0.110101)2 → (0., 1101, 0100)2
  2. 各部分を十六進表記に変換する。
    • (1101)2 = (D)16, (0100)2 = (4)16
  3. 得られた十六進表記を並べて (0.D4)16 が得られる。

したがって、(111010.110101)2 = (3A.D4)16</sup> である。

乗算表

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 テンプレート:00 テンプレート:00 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E
3 0 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D
4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C
5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B
6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7 0 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78
9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1

単位系

単位系の十六進法では、数は十進法を用いて表記し、16 に至ると単位を繰り上げる方法を採る。

ヤード・ポンド法では、質量の単位に十六進法が用いられる。

尺貫法の質量の単位の一部にも十六進法が用いられる。

脚注

テンプレート:脚注ヘルプ

  1. この奇妙な配列はLGP-30における6ビットキャラクターコードの順番から来ている。LGP-30 PROGRAMMING MANUAL
  2. Letters to the editor: On binary notation, Bruce Alan Martin, Associated Universities Inc., Communications of the ACM, Volume 11, Issue 10 (October 1968) Page: 658 テンプレート:Doi

関連項目