読み方:じゅうろくしんすう

16進数 【hexadecimal number】 16進法 / 十六進数 / 十六進法 / ヘキサデシマル

概要

16進数(hexadecimal number)とは、数を書き表す方法(記数法)の一つで、基数を16(十六)とした表記法のこと。数字の「0」から「9」、およびアルファベットの「A」から「F」を用いてすべての数を表現する。

普段我々が日常的な数字の読み書きや算術に用いる位取り記数法は10進数十進数/10進法)で、一つの桁の表現に「0」から「9」の10種類の数字を使い、各桁の左の桁が10倍、右の桁は10分の1を表している。

一方、16進数では1の位、16の位、256の位…というように桁の重みが16倍ずつ変化する。16進数における「10」は10進数における「16」を意味する。小数点以下も同様で、小数点の右隣から順に、16分の1の位、256分の1の位、4096分の1の位…というように続く。

コンピュータはすべてのデータを2進数で表しており、これを8桁(8ビット)ずつまとめた「バイト」という単位でデータを取り扱う。16進数は一桁で2進数の4桁分(4ビット)の値を書き記すことができるため、1バイトのデータを「00」から「FF」までの2桁の16進数として表記する慣習がある。

表記法

十六進十進
11
99
A10
B11
C12
D13
E14
F15
1016
2032
十六進十進
4064
64100
FF255
100256
3E81000
FFF4095
10004096
271010000
FFFF65535
1000065536
▲ 十六進表記

10進数の表記には「0」から「9」まで10種類の数字が必要なように、16進数では一桁を16種類の数字で表す必要がある。我々が日常的に使う数字は10種類しかないため、10から15までの数を一桁で表現するために「A」から「F」までの6つのアルファベットで代用することが多い。

その場合、「0」から「9」までは10進数の値と同じで、10進数の10を「A」、11を「B」、12を「C」、13を「D」、14を「E」、15を「F」でそれぞれ表す。例えば、「A0」は10進数の「160」(16×10)、「FF」は「255」(16×15+15)を表す。言語や処理系によるが、大文字と小文字は区別しない(どちらでもよい)ことが多い。

なお、複数の位取り表記法が混在する文書などの場合、記された数値がそれぞれ何進法なのかを明示するため「(9ABC)16」「(1234)10」のように右下に小さく10進表記で基数を記す場合がある。

各言語における表記

プログラミング言語やマークアップ言語などの数値リテラルでは、日常的な文書などと同じように単に数字を並べた表記は10進数とみなす場合が多く、16進数を記述する場合は先頭に特定の接頭辞を付けるなど特別な表記法を用いる。

多くの言語ではC言語などにならって「0xDEAD」のように先頭に「0x」を付記する表記法を採用しており、文字列中のコード参照では「¥x0D¥x0A」のように「¥x」(日本語圏以外では¥はバックスラッシュ)を用いる。

言語によっては「#x」(Schemeなど)「&h」(BASICなど)などを用いたり、末尾に「h」を付ける(一部のアセンブリ言語など)場合もある。HTMLやXMLなどにおける数値文字参照では「♪」のように「&#x」と「;」で挟む。

(2023.4.19更新)

プログラミング言語の用語一覧

試験出題履歴

ITパスポート試験 : 平24秋 問79 平21秋 問64
基本情報技術者試験 : 令7修6 問1 令5公 問1 令5修1 問1 令3修1 問1 平30修12 問1 平30秋 問1 平29修6 問1 平29修1 問1 平28修7 問2 平28修6 問1 平27修6 問1 平27修1 問1 平26秋 問1 平25修12 問1 平25秋 問2 平25修6 問1 平25春 問1 平24修7 問2 平24修6 問1 平23秋 問1 平23修7 問1 平23修1 問1 平22秋 問1 平22修7 問1 平22春 問1 平22修1 問1 平21修7 問1