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桁ずつを1桁に)
2進数 10101011 を4桁ずつに区切る
例題(くわしい手順)
10進数の 200 を16進数に直します。
- 16でわる:200 ÷ 16 = 12 あまり 8。
- 商とあまりを文字に:商12 は C、あまり8 は 8。
- 上から並べる:C8。
確かめ:C8 = 12×16+8 = 192+8 = 200。もとに戻れば正解です。
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としないよう注意。
16進数の FF を10進数で表しなさい。
解答・解説を見る
答え:255
15×16+15=240+15=255。1バイト(8ビット)で表せる最大の値です。
2進数の 11010110 を16進数で表しなさい。
解答・解説を見る
答え:D6
右から4桁ずつ区切ると 1101 と 0110。1101=13=D、0110=6 なので D6(10進数では214)です。
10進数の 200 を16進数で表しなさい。
解答・解説を見る
答え:C8
200÷16=12 あまり 8。商12=C、あまり8 なので C8 です。
よくある質問
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知識の範囲を参照し、オリジナルに作成(実在試験問題の転載はありません)。正確性は編集・監修フローで確認しています(仕様書 第11章)。