十六進法

十六進法（じゅうろくしんほう、 ）とは、16を底（てい）とし、底およびその冪（べき）を基準にして数を表す方法である。
記数法.
十六進記数法とは、十六を底とする位取り記数法である。
位取り記数法（N進位取り記数法）では、まず基数（base。集合の基数（cardinal）とは異なる）となる自然数 N に対して、
の数値に対応する数字の記法を対応させるので、下表のようにする（A〜F を英小文字にする場合もある）。
次に、これらを用いて
という数字列で表現する。（ただし、formula_1、formula_2 はそれぞれの 0 から F の数字であり、formula_3 とする）
この数字列が、
という数値であることを表すものである。
上記の数字列の先頭にマイナス符号「-」を付けることで負数を表現できる。
表記する方法は、20世紀半ばまで人やグループごとに異なっていて定まっていなかった（#初期の表記法）が、20世紀後半にコンピュータが普及して以降、つまりここ数十年は一般には、0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F の計十六個の文字を数字として用いることが定着している。
下記では慣用に従い、通常のアラビア数字は十進表記とし、十六進記数法での表記は ( )16（括弧および下付きの16）で表す。
コンピュータでの十六進表記.
コンピュータでは、データをビットやオクテットを単位として表すことが多い。それぞれ二進表記の1桁、8桁で表現できる。
使える数は、前者は0と1だけが許されるが、後者は0〜255までに広がる。
後者には、十六進表記がよく用いられ、二進表記の4桁が1桁で表現できるので、二進表記より短く表すことができる。1オクテットは、2桁の十六進表記で表現することができる。
十六進表記の1桁はニブルとも呼ばれる。
下記は具体例。左側はメモリアドレス。右側は十六進法（16進数）で表示された機械語やデータなど。この例ではアルファベットは小文字が使われている。画面（モニタ）に表示する時は、可読性を高めるために2文字や4文字ごとに空白をはさむことが一般的である。
00000000 57 69 6b 69 70 65 64 69 61 2c 20 74 68 65 20 66 
00000010 72 65 65 20 65 6e 63 79 63 6c 6f 70 65 64 69 61 
00000020 20 74 68 61 74 20 61 6e 79 6f 6e 65 20 63 61 6e 
00000030 20 65 64 69 74 0a 
表記方法.
十六進表記はよく使われるので、プログラム言語ではリテラルとして特別な表記が準備されていることが多い。一般に、大文字の A〜F と小文字の a〜f を区別しない。
(1000)16 の表記の例を挙げる。
読み方は十進表記の1000（（いっ）せん）と区別するため、文字並びのまま読む（例えば、codice_1 は「ぜろ・エックス・いち・ぜろ・ぜろ・ぜろ」と読む）。慣用では「ヘキサの千」もしくは「千ヘキサ」と言った読み方も行われている。
上記の数字に付く codice_2 や codice_3 は英語で十六進法を意味する から取ったものである。十六進表記であることを明示している。
初期の表記法.
"A" - "F" の文字を用いて 9 以上の数字を表現する方法はコンピューター黎明期にはまだ一般的ではなかった。
二進表記から十六進表記への変換.
二進表記から十六進表記に変換する方法を、以下に示す。
整数部分.
この方法は桁数に関わらず通用する。例えば、(100110010111010)2 は (0100, 1100, 1011, 1010)2 であるから、(4CBA)16 となる。
小数部分.
小数部分の変換方法は、次のとおり。
したがって、(111010.110101)2 = (3A.D4)16 である。この方法は桁数に関わらず通用する。
小数と除算.
割り切れない小数の循環部は下線で示す。「10」となる十六には因数に奇数が含まれていないため、1/3や1/5といった「1÷奇数」が全て割り切れない。小数を分数化しても、「m/奇数」となる小数が全く現れない。従って、偶数も、1/6｛1÷(2×3)｝や1/A｛1÷(2×5)｝といった「1÷奇数で割り切れる偶数」は割り切れない。六の倍数も十の倍数も逆数にすると全て割り切れないので、単位分数は無限小数が充ち溢れ、逆数が有限小数になる例は2の冪数だけになる。
四則演算表.
一桁同士の計算:
英単語 Hexadecimal の語源.
Hexadecimalはギリシャ語で6 (, hex) を意味する"hexa-"と、ラテン語で10番目 (tenth) を意味する"-decimal"の複合語。ウェブスター新国際オンライン版第3版によると"hexadecimal"は完全ラテン語由来の"sexadecimal"の代替語である（Bendixのドキュメントにも同様の記述がある）。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が正しいことになる）。アルフレッド・B・テイラーは16進数を不便な数字だとして嫌っていたが、1800年代に"senidenary"として16進数を研究していた。シュワルツマンによると、ラテン語から考えれば"sexadecimal"が自然だが、コンピュータのハッカーたちは略語にsexを使うだろうと話した。語源的に完全ギリシャ語で考えればhexadecadic（ ）が正しいと考えられる（ただし現代のギリシャでは"decahexadic"（ ""）が使われている）。
単位系.
単位系の十六進法では、数は十進法を用いて表記し、16に至ると単位を繰り上げる方法を採る。
ヤード・ポンド法では、質量の単位に十六進法が用いられる。
尺貫法の質量の単位の一部にも十六進法が用いられる。