16進数:A〜Fを使って、2進数4桁を1桁で表す
16進数は、0〜9 のあとに A・B・C・D・E・F(10〜15)を使って、16 でくり上がる表し方です。2進数のちょうど4桁が16進数の1桁になるため、長い2進数を短く書ける利点があります。FF=255、2A=42。色の指定(#FF0000=赤)やメモリのアドレス表示で毎日使われています。
このページで学べること
- 16進数のしくみと A〜F の意味がわかる
- 16進数を10進数に直せる
- 2進数と16進数を4桁ずつで変換できる
- カラーコード #RRGGBB を読める
前提知識
位の重みは16倍ずつ
A=10、B=11、C=12、D=13、E=14、F=15。1桁で15まで表せるので、10進数より短く書けます。
10進数は位が10倍ずつ、2進数は2倍ずつ増えます。16進数は16倍ずつです。だから2桁の16進数は「16の位」と「1の位」になります。
たとえば 2A は、2×16+A(=10)×1=32+10=42。FF は 15×16+15=240+15=255です。2桁で0〜255(256通り)を表せるので、1バイト(8ビット)とちょうど対応します。
2進数との相性がよいのは、2の4乗=16 だからです。2進数を右から4桁ずつ区切ると、それぞれが16進数の1桁になります。1011=11=B、1010=10=A。つまり 10101011 は AB と書けます。
16進数2桁 = 上の桁×16 + 下の桁 / 2進数4桁 = 16進数1桁2進数4桁で表せるのは 2 × 2 × 2 × 2 = 16 通り(0000〜1111 = 0〜15)です。16進数の1桁で表せるのも 0〜F の16通り。表せる数がぴったり同じなので、1対1で対応します。
だから長い2進数は、右から4桁ずつ区切るだけで16進数に直せます。10101011 なら 1010(=10=A)と 1011(=11=B)で AB。10進数の 171 では、こうやって区切って読むことはできません。16 が 2 の4乗だからこの相性のよさが生まれます。8進数(2の3乗)が使われることがあるのも、まったく同じ理由です。
図でイメージする(2進数4桁ずつを1桁に)
2進数 10101011 を4桁ずつに区切る
例題(くわしい手順)
例題1:10進数を16進数に直す
10進数の 200 を16進数に直します。
- 16でわる:200 ÷ 16 = 12 あまり 8。
- 商とあまりを文字に:商12 は C、あまり8 は 8。
- 上から並べる:C8。
確かめ:C8 = 12×16+8 = 192+8 = 200。もとに戻れば正解です。
例題2:2進数を16進数に直す
2進数の 11010110 を16進数に直します。
- 右から4桁ずつ区切る:1101 と 0110 に分かれます。
- それぞれ10進数にする:1101 は 8 + 4 + 1 = 13、0110 は 4 + 2 = 6。
- A〜F に直す:13 は D、6 はそのまま 6。答えは D6。
- 確かめる:D6 は 13 × 16 + 6 = 214。もとの2進数も 128+64+16+4+2 = 214 で一致します。
区切るのは右からです。左から区切ると桁がずれて、まったくちがう値になります。桁数が4の倍数でないときは、左に0をおぎなって4桁にそろえます。
10進数・2進数・16進数の対応
| 10進数 | 2進数 | 16進数 |
|---|---|---|
| 0 | 0000 | 0 |
| 9 | 1001 | 9 |
| 10 | 1010 | A |
| 15 | 1111 | F |
| 16 | 10000 | 10 |
| 255 | 11111111 | FF |
色の指定 #RRGGBB は、赤・緑・青の強さをそれぞれ16進数2桁(0〜255)で書いたものです。#FF0000 は赤だけ最大なので赤、#FFFFFF は3色すべて最大なので白になります。
よくある間違い
A〜F は数です。A=10、F=15。2A は「2と文字A」ではなく 2×16+10=42 という数を表します。
16進数の位は16倍ずつ。FF を 15×10+15=165 としてはいけません。正しくは 15×16+15=255です。
区切りは右から4桁ずつです。110101 なら 0011/0101 と考えて 35 になります(左から区切ると別の値になります)。
練習問題
まず自分で解いてから解説を開きましょう。
16進数の 2A を10進数で表しなさい。
解答・解説を見る
答え:42
2×16+A(=10)=32+10=42 です。
16進数は左の位が16倍。A〜F はそれぞれ10〜15を表します。2A を「2と10」と並べて210としないよう注意。
つまずいたら → 「A=10 … F=15」(本ページ 位の重みは16倍ずつ)に戻りましょう。
16進数の FF を10進数で表しなさい。
解答・解説を見る
2進数の 11010110 を16進数で表しなさい。
解答・解説を見る
答え:D6
右から4桁ずつ区切ると 1101 と 0110。1101=13=D、0110=6 なので D6(10進数では214)です。
つまずいたら → 「右から4桁ずつ区切る」(本ページ 例題2)に戻りましょう。
10進数の 200 を16進数で表しなさい。
解答・解説を見る
よくある質問
Q. 16進数とは何ですか?
0〜9とA〜F の16種類の文字で数を表す方法です。A=10、F=15で、位は16倍ずつ増えます。FFは15×16+15=255になります。
Q. なぜコンピュータで16進数を使うのですか?
2の4乗が16なので、2進数のちょうど4桁が16進数の1桁に対応します。11111111 のような長い2進数を FF と短く書けるため、色の指定やメモリのアドレス表示に便利です。
Q. #FF0000 は何色ですか?
赤です。#RRGGBB は赤・緑・青の強さを16進数2桁(0〜255)で表し、FF0000は赤だけが最大値になります。#FFFFFFは白、#000000は黒です。
Q. 16進数と2進数はどう変換しますか?
2進数を下から4桁ずつ区切り、それぞれを16進数1桁に直します。10101011 なら 1010→A、1011→B で AB です。逆も同じで、1桁を4桁に開きます。
次に学ぶ内容
高等学校「情報I」および基本的なIT知識の範囲を参照し、オリジナルに作成(実在試験問題の転載はありません)。正確性は編集方針にそって確認しています。