十六進法 (じゅうろくしんほう、 英 : hexadecimal )とは、十進数 の16 を底 とし、底およびその冪 を基準にして数を表す方法である。
記数法
十六進記数法とは、十六 を底とする位取り記数法 である。
位取り記数法(N進位取り記数法)では、まず基数 (base。集合 の基数 (cardinal)とは異なる)となる自然数 N に対して、
の数値に対応する数字の記法を対応させるので、下表のようにする(A〜F を英小文字 にする場合もある)。
十六進数記法の対応
十進法
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
十六進法
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
次に、これらを用いて
a
m
a
m
−
1
⋯
a
1
a
0
.
b
1
b
2
⋯
b
k
{\displaystyle a_{m}a_{m-1}\cdots a_{1}a_{0}.b_{1}b_{2}\cdots b_{k}}
計算機科学者 Bruce Alan Martinによって提唱された十六進数の国際表記法、新たな数字。(1968年10月。出典: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) [ 3]
A - F の文字を用いて 9 以上の数字を表現する方法はコンピューター黎明期にはまだ一般的ではなかった。
1968年にBoby Lapointe(英語版 ) が新たな表記Bibi-binary(英語版 ) を定義した。この表記は普及しなかった。
ブルックヘブン国立研究所 のBruce Alan Martinは A〜F による表記に不快感を示し、ビット配列に基づいた全く新しい数字を考案して1968年 にCACM(英語版 ) へ提案したが、賛同者は少なかった[ 3] 。
7セグメントディスプレイ では、B,Dを8,0と区別するためb,dと小文字で表示する方法が採られた。
Bioctal 表記法
2022年 4月1日 に発行されたRFC 9226 によって提案された新しい十六進数の表記法として、Bioctal がある(ジョークRFC も参照)。
この表記法では、十六進数を以下の表のように表記することとしている。
英字は基本的に小文字で表記する。
Bioctal の表記法
0 から 7
0
1
2
3
4
5
6
7
8 から 15
c
j
z
w
f
s
b
v
これらの文字は、表の上段の数字と(そのままで、あるいは九十度回転させて)形が似ている英字、かつ見分けにくい L(エル)の小文字や母音などを避けて決められている。
上記表では8個の項目で折り返しているため、上下の数値の下三ビットは同じ値になる。
これにより、十六進数を八進数や二進数に変換するときの認知心理学的負荷を軽減させることができるとしている。
底の変換
二・八・十・十二進表記との対応
十六進表記
十二進表記
十進表記
八進表記
二進表記
(0 )16
(0)12
(0)10
(0)8
(0)2
(1 )16
(1)12
(1)10
(1)8
(1)2
(2 )16
(2)12
(2)10
(2)8
(10)2
(3 )16
(3)12
(3)10
(3)8
(11)2
(4 )16
(4)12
(4)10
(4)8
(100)2
(5 )16
(5)12
(5)10
(5)8
(101)2
(6 )16
(6)12
(6)10
(6)8
(110)2
(7 )16
(7)12
(7)10
(7)8
(111)2
(8 )16
(8)12
(8)10
(10)8
(1000)2
(9 )16
(9)12
(9)10
(11)8
(1001)2
(A )16
(A)12
(10)10
(12)8
(1010)2
(B )16
(B)12
(11)10
(13)8
(1011)2
(C )16
(10)12
(12)10
(14)8
(1100)2
(D )16
(11)12
(13)10
(15)8
(1101)2
(E )16
(12)12
(14)10
(16)8
(1110)2
(F )16
(13)12
(15)10
(17)8
(1111)2
二進表記から十六進表記への変換
二進表記から十六進表記に変換する方法を、以下に示す。
整数部分
二進表記を右から 順に4桁ずつ区切る。最後(最左部分)が4桁未満のときは、空いた部分(左側)には全て0があるとみなす。
(111010)2 → (11, 1010)2 → (0011, 1010)2
各部分を十六進表記に変換する。
(0011)2 = (3)16 , (1010)2 = (A)16
得られた十六進表記を並べて (3A)16 が得られる。
この方法は桁数に関わらず通用する。例えば、(100110010111010)2 は (0 100, 1100, 1011, 1010)2 であるから、(4CBA)16 となる。
小数部分
小数部分の変換方法は、次のとおり。
二進表記を小数点を基準にして左から 順に4桁ずつ区切る。最後(最右部分)が4桁未満のときは、空いた部分(右側)には全て0があるとみなす。
(0.110101)2 → (0., 1101, 0100)2
各部分を十六進表記に変換する。
(1101)2 = (D)16 , (0100)2 = (4)16
得られた十六進表記を並べて (0.D4)16 が得られる。
したがって、(111010.110101)2 = (3A.D4)16 である。この方法は桁数に関わらず通用する。
十進数から十六進数への変換
正の整数
正の整数 m を十進法から十六進法に変換するのは次のようにする。
m を x に代入する。
x を 16 で割って、余りを求める。
x/16 の商を x に代入する。
16. に戻る。x = 0 であれば終了。
余りを求めた順の逆に並べると、それが十六進法に変換された結果になる。
例:36864 を十六進法に変換する。
16)36864 36864=160 ×36864
16) 2304 …0 36864=161 × 2304+160 ×0
16) 144 …0 36864=162 × 144+161 ×0+20 ×0
9…9 36864=163 × 9+162 ×0+21 ×0+20 ×0
よって 3686410 = 900016 である。
末尾が0、2 、4 、6 、8 、A、C、Eは偶数 。
末尾が0、4、8、Cは複偶数 (4の倍数)。
末尾が0、8は8の倍数。
末尾が0は16 10 の倍数。
下2桁が00は256 10 の倍数。
3 の倍数は十進法 と同じく数字和 が3の倍数。
5 の倍数は六進法 と同じく数字和が5の倍数。
15 10 の倍数は数字和が15の倍数。
48 10 の倍数は末尾0で数字和が3の倍数。
80 10 の倍数は末尾0で数字和が5の倍数。
240 10 の倍数は末尾0で数字和が15の倍数。
768 10 の倍数は下2桁00で数字和が3の倍数。
1280 10 の倍数は下2桁00で数字和が5の倍数。
384010 の倍数は下2桁00で数字和が15の倍数。
小数と除算
割り切れない小数の循環部は下線 で示す。「10」となる十六 には因数 に奇数 が含まれていないため、1/3 や1/5 といった「1÷奇数 」が全て割り切れない。小数を分数化しても、「m/奇数 」となる小数が全く現れない。従って、偶数 も、1/6 {1÷(2×3 )}や1/A {1÷(2×5 )}といった「1÷奇数で割り切れる偶数」は割り切れない。六 の倍数も十 の倍数も逆数 にすると全て割り切れないので、単位分数 は無限小数 が充ち溢れ、逆数が有限小数 になる例は2の冪 数だけになる。
十六進小数 の分数 化
十六進小数
六進既約分数
十進既約分数
六進小数
十進小数
十二進小数
二十進小数
0.1
1/24
1/16
0.0213
0.0625
0.09
0.15
0.2
1/12
1/8
0.043
0.125
0.16
0.2A
0.3
3/24
3/16
0.1043
0.1875
0.23
0.3F
0.4
1/4
1/4
0.13
0.25
0.3
0.5
0.5
5/24
5/16
0.1513
0.3125
0.39
0.65
0.6
3/12
3/8
0.213
0.375
0.46
0.7A
0.7
11/24
7/16
0.2343
0.4375
0.53
0.8F
0.8
1/2
1/2
0.3
0.5
0.6
0.A
0.9
13/24
9/16
0.3213
0.5625
0.69
0.B5
0.A
5/12
5/8
0.343
0.625
0.76
0.CA
0.B
15/24
11/16
0.4043
0.6875
0.83
0.DF
0.C
3/4
3/4
0.43
0.75
0.9
0.F
0.D
21/24
13/16
0.4513
0.8125
0.99
0.G5
0.E
11/12
7/8
0.513
0.875
0.A6
0.HA
0.F
23/24
15/16
0.5343
0.9375
0.B3
0.IF
小数 への変換と除算(3 の冪数)
N進法
Nの素因数分解
1/3
1/9 (1÷32 )
(1/27 )10 (1÷33 )
100÷3
100÷9
100÷33
十六進法
24
0.5 555…
0.1C7 …
0.097B425ED … (1÷1B)
55.5 555…
1C.71C …
9.7B425ED09 … (100÷1B)
六進法
2×3
0.2
0.04 (1÷13)
0.012 (1÷43)
221.2 (1104÷3)
44.24 (1104÷13)
13.252 (1104÷43)
十二進法
22 ×3
0.4
0.14
0.054 (1÷23)
71.4 (194÷3)
24.54 (194÷9)
9.594 (194÷23)
小数への変換と除算(5の冪数)
N進法
Nの素因数分解
1/5
(1/25 )10 (1÷52 )
100÷5
100÷52
十六進法
24
0.3 333…
0.0A3D7 … (1÷19)
33.3 333…
A.3D70A … (100÷19)
十進法
2×5
0.2
0.04 (1÷25)
51.2 (256÷5)
10.24 (256÷25)
二十進法
22 ×5
0.4
0.0G (1÷15)
2B.4 (CG÷5)
A.4G (CG÷15)
その他の計算例
被除数がB (十進法の11 )
十六進法:B ÷ 3 = 3.A AAA…
十六進法:B ÷ 5 = 2.3 333…
六進法:(15)6 ÷ 3 = 3.4
十二進法:B ÷ 3 = 3.8
十進法:(11)10 ÷ 5 = 2.2
二十進法:B ÷ 5 = 2.4
被除数が8E (十進法の142 )
十六進法:(8E)16 ÷ 3 = 2F.5 555…
十六進法:(8E)16 ÷ 5 = 1C.6 666…
六進法:(354)6 ÷ 3 = 115.2
十二進法:(BA)12 ÷ 3 = 3B.4
十進法:(142)10 ÷ 5 = 28.4
二十進法:(72)20 ÷ 5 = 18.8
四則演算表
一桁同士の計算:
加法表
+
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
1
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
2
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
3
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
4
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
5
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
6
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
7
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
8
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
9
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
A
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
B
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
C
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
D
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
E
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
F
0 F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
乗法表
×
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
0
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 0
0 F
1E
2D
3C
4B
5A
69
78
87
96
A5
B4
C3
D2
E1
英単語 Hexadecimal の語源
Hexadecimalはギリシャ語 で6 (ἕξ , hex) を意味するhexa- と、ラテン語 で10番目 (tenth) を意味する-decimal の複合語。ウェブスター新国際オンライン版第3版によるとhexadecimal は完全ラテン語由来のsexadecimal の代替語である(Bendixのドキュメントにも同様の記述がある[ 5] )。Merriam-Webster's Collegiate Dictionaryにおけるhexadecimal の初出は1954年で、当初より現在に至るまで国際科学用語ISVに分類されている。ギリシャ語とラテン語を混ぜ合わせた造語法はISVでは一般的にみられる。六十進法 を意味するsexagesimal はラテン語の接頭子を保っている。ドナルド・クヌース はラテン語で16進数を表すとするならばsenidenary か、または恐らくsedenary が正しいのではないかとしている(同じ作り方で考えればbinary (2進数) 、ternary (3進数) 、quaternary (4進数) となり、この流れでいえばdecimal (10進数)とoctal (8進数)も、それぞれdenaryとoctonaryが正しいことになる)[ 10] 。アルフレッド・B・テイラーは16進数を不便な数字だとして嫌っていたが、19世紀にsenidenary として16進数を研究していた[ 11] [ 12] 。シュワルツマンによると、ラテン語から考えればsexadecimal が自然だが、コンピュータのハッカーたちは略語にsexを使うだろうと話した[ 13] 。語源的に完全ギリシャ語で考えればhexadecadic(ギリシア語 : ἑξαδεκαδικός hexadekadikós )が正しいと考えられる(ただし現代のギリシャではdecahexadic (ギリシア語 : δεκαεξαδικός dekaexadikos )が使われている)。
単位系
単位 系の十六進法では、数は十進法 を用いて表記し、16に至ると単位を繰り上げる方法を採る。
ヤード・ポンド法 では、質量 の単位に十六進法が用いられる。
尺貫法 の質量の単位の一部にも十六進法が用いられる。
ギャラリー
脚注
^ 青木和彦・上野健爾他『岩波数学入門辞典』岩波書店 、2005年、ISBN 4-00-080209-7 、pp.46、125-126 において、底をN=16とした場合。
^ (00)16 〜(ff)16
^ a b Martin, Bruce Alan (October 1968). “編集者への手紙: バイナリ表記について”. Communications of the ACM (Associated Universities Inc.) 11 (10): 658. doi :10.1145/364096.364107 .
^ a b c d e f g h “Computer Arithmetic ”. quadibloc (2018年). 2018年7月16日時点のオリジナルよりアーカイブ 。2018年7月16日 閲覧。
^ a b “2.1.3 Sexadecimal notation” . G15Dプログラマーズリファレンスマニュアル . Los Angeles, CA, USA: Bendix Computer, Division of Bendix Aviation Corporation. p. 4. オリジナル の2017-06-01時点におけるアーカイブ。. https://web.archive.org/web/20170601222212/http://bitsavers.trailing-edge.com/pdf/bendix/g-15/G15D_Programmers_Ref_Man.pdf 2017年6月1日 閲覧 . "16個の数字 (0〜15) で4ビットのグループを表すことができるためこの基数を用いる。各組合せにシンボルを割り当てることでこの表記をsexadecimalと呼べるようになる(略称をsexと呼ぶことは憚れるため、通常はhexと略す)。sexadecimalのシンボルは10個の10進数に加え、G-15においては、文字 u v w x y z である。この記号は任意であり、別のコンピュータでは最後の6文字に異なるアルファベットを割り当ててもよい。"
^ “ILLIAC Programming - A Guide to the Preparation of Problems For Solution by the University of Illinois Digital Computer ”. bitsavers.org . Urbana, Illinois, USA: Digital Computer Laboratory, Graduate College, University of Illinois. pp. 3-2 (1956年9月1日). 2017年5月31日時点のオリジナルよりアーカイブ 。2014年12月18日 閲覧。
^ ROYAL PRECISION Electronic Computer LGP - 30 PROGRAMMING MANUAL . Port Chester, New York: Royal McBee Corporation. (April 1957). オリジナル の2017-05-31時点におけるアーカイブ。. https://web.archive.org/web/20170531153004/http://ed-thelen.org/comp-hist/lgp-30-man.html 2017年5月31日 閲覧。 (注:この奇妙な配列はLGP-30における6ビットキャラクターコードの順番から来ている。)
^ NEC Parametron Digital Computer Type NEAC-1103 . Tokyo, Japan: Nippon Electric Company Ltd.. (1960). Cat. No. 3405-C. オリジナル の2017-05-31時点におけるアーカイブ。. https://web.archive.org/web/20170531112850/http://archive.computerhistory.org/resources/text/NEC/NEC.1103.1958102646285.pdf 2017年5月31日 閲覧。
^ スペース記号
^ Knuth, Donald. (1969). The Art of Computer Programming , Volume 2 . ISBN 0-201-03802-1 . (Chapter 17.)
^ Alfred B. Taylor, Report on Weights and Measures , Pharmaceutical Association, 8th Annual Session, Boston, 15 September 1859. See pages and 33 and 41.
^ Alfred B. Taylor, "Octonary numeration and its application to a system of weights and measures", Proc Amer. Phil. Soc. Vol XXIV , Philadelphia, 1887; pages 296-366. See pages 317 and 322.
^ Schwartzman, S. (1994). The Words of Mathematics: an etymological dictionary of mathematical terms used in English . ISBN 0-88385-511-9 .
関連項目