16進数をちゃんと理解するための基礎知識
10進数
16進数について説明する前に、私たちにとってなじみ深い10進数について解説します。10進数を理解することで16進数も理解しやすくなるでしょう。10進数とは、「0」から「9」までの10種類の数字を使い、それよりも大きい数になると1桁を増やす数え方です。「10進数」と呼ばれる理由は1桁で10種類の数字を用いるからです。9の次は10といったように、10種類を使い切ると1桁増やすことで、より大きな数を数えられるようになります。
基数
1つの桁に出てくる数字の数を「基数」といいます。10進数は10を、16進数は16を基数とする数え方です。
16進数とは
10進数とは、「0」から「9」の10種類を使いますが、16進数には16種類の数字を使います。しかし、文字としての数字は「0」から「9」の10種類しかないため、アルファベットのA~Fを「数字」 として使用します。16進数の場合、「9」の次は「A」(10進数で言うところの10)、「B」(10進数で言うところの11)・・・と続き、「F」(10進数で言うところの15)まで表現します。ここまでは1桁ですが、10進数で言うところの16に該当する値は16進数だと「10」と表現します。
10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
2進数 | 0 | 01 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 | 10000 |
16進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 10 |
ちなみに、2進数は「0」と「1」の2種類で値を表現します。
コンピュータでは2進数が用いられます。しかし、2進数ですべてを表現しようとするとデメリットがあります。2進数は桁上がりが激しく、大きな値を2進数で表現しようとするとそうしても桁数も多くなってしまいます。
たとえば、10進数の10は2進数では「1010」ですが、 16進数では「A」と表せます。
このように、大きな値を表すのに2進数ではなく16進数が重宝されます。
(例)
10進数 | 2進数 | 16進数 |
1 | 1 | 1 |
10 | 1010 | A |
100 | 110 0100 | 64 |
2進数を下桁から4桁ごとに区切り、4桁単位で16進数に置きかえられます。
16進数にはアルファベットが混ざる分、慣れるまで難しく感じるかもしれませんが、「0」と「1」だけで表現する2進数よりは、 はるかに扱い易いでしょう。
16進数がコンピュータ関連で登場する理由
16進数がコンピュータ関連で重宝される理由はずばり「コンピュータにも人間にも扱い易い」からです。コンピュータは2進数を扱います。一方で人間にとって2進数は扱いにくいです。特に、大きな値を扱う場合は大変です。そこで、16進数にすることで大きな値も扱いやすくなります。また、コンピュータにとっても16進数は10進数よりは扱いやすいです。これは、2進数と16進数の変換が簡単で、16進数の1桁をちょうど2進数の4桁(4ビット)で表せるからです。このように、人間とコンピュータどちらにも扱いやすいのが16進数です。
16進数の活用例
16進数はコンピュータ分野で幅広く活用されています。
色の指定
Webページの文字色の指定は16進数で行います。RGB値といって、左から2桁ずつ、00からFF まで(10進数では0から255に相当) の 256種類で赤、緑、青の色の階調を表し、3色の合成されたものが表示されています。つまり、256×256×256=16,777,216通りの色を表せます。
文字コード
ASCIIでは文字を16進数で表します。
プログラミング
プログラミングのメモリアドレスやビットフラグなどにおいて16進数を使ってより簡潔に値を表現することがあります。
データ通信
データ通信のパケットやバイト列を16進数で表示することがあります。
データベース関連
データベース管理やバックアップに2進数や16進数でデータのインポート・エクスポートを行うことがあります。
ネットワーク関連
IPアドレスなどのネットワーク関連領域で16進数が用いられることがあります。
変換方法
ある進数で示された値をほかの進数に変換することを基数変換といいます。
2進数→16進数への基数変換
2進数を下桁から4桁(4bit)ごとに区切り、4桁単位で16進数に置きかえます。
16進数→2進数への基数変換
16進数を1文字ずつ2進数に置きかえます。
n進数→10進数への基数変換
各桁を10進数に直して合計します。
(例1)16進数の2A→16×2+10=42
(例2)2進数の101→2∧2×1+2∧0×1=4+1=5
10進数→n進数への基数変換
変換する10進法の数をnで割り、余りの数を右に記述します。出た商を連続で割り、下から逆L字に数字を拾うことでn進法に変換できます。
早見表【10進数・2進数・16進数】
10進数 | 2進数 | 16進数 |
0 | 00000000 | 0 |
1 | 00000001 | 1 |
2 | 00000010 | 2 |
3 | 00000011 | 3 |
4 | 00000100 | 4 |
5 | 00000101 | 5 |
6 | 00000110 | 6 |
7 | 00000111 | 7 |
8 | 00001000 | 8 |
9 | 00001001 | 9 |
10 | 00001010 | a |
11 | 00001011 | b |
12 | 00001100 | c |
13 | 00001101 | d |
14 | 00001110 | e |
15 | 00001111 | f |
16 | 00010000 | 10 |
17 | 00010001 | 11 |
18 | 00010010 | 12 |
19 | 00010011 | 13 |
20 | 00010100 | 14 |
21 | 00010101 | 15 |
22 | 00010110 | 16 |
23 | 00010111 | 17 |
24 | 00011000 | 18 |
25 | 00011001 | 19 |
26 | 00011010 | 1a |
27 | 00011011 | 1b |
28 | 00011100 | 1c |
29 | 00011101 | 1d |
30 | 00011110 | 1e |
31 | 00011111 | 1f |
32 | 00100000 | 20 |
33 | 00100001 | 21 |
34 | 00100010 | 22 |
35 | 00100011 | 23 |
36 | 00100100 | 24 |
37 | 00100101 | 25 |
38 | 00100110 | 26 |
39 | 00100111 | 27 |
40 | 00101000 | 28 |
41 | 00101001 | 29 |
42 | 00101010 | 2a |
43 | 00101011 | 2b |
44 | 00101100 | 2c |
45 | 00101101 | 2d |
46 | 00101110 | 2e |
47 | 00101111 | 2f |
48 | 00110000 | 30 |
49 | 00110001 | 31 |
50 | 00110010 | 32 |
51 | 00110011 | 33 |
52 | 00110100 | 34 |
53 | 00110101 | 35 |
54 | 00110110 | 36 |
55 | 00110111 | 37 |
56 | 00111000 | 38 |
57 | 00111001 | 39 |
58 | 00111010 | 3a |
59 | 00111011 | 3b |
60 | 00111100 | 3c |
61 | 00111101 | 3d |
62 | 00111110 | 3e |
63 | 00111111 | 3f |
64 | 01000000 | 40 |
65 | 01000001 | 41 |
66 | 01000010 | 42 |
67 | 01000011 | 43 |
68 | 01000100 | 44 |
69 | 01000101 | 45 |
70 | 01000110 | 46 |
71 | 01000111 | 47 |
72 | 01001000 | 48 |
73 | 01001001 | 49 |
74 | 01001010 | 4a |
75 | 01001011 | 4b |
76 | 01001100 | 4c |
77 | 01001101 | 4d |
78 | 01001110 | 4e |
79 | 01001111 | 4f |
80 | 01010000 | 50 |
81 | 01010001 | 51 |
82 | 01010010 | 52 |
83 | 01010011 | 53 |
84 | 01010100 | 54 |
85 | 01010101 | 55 |
86 | 01010110 | 56 |
87 | 01010111 | 57 |
88 | 01011000 | 58 |
89 | 01011001 | 59 |
90 | 01011010 | 5a |
91 | 01011011 | 5b |
92 | 01011100 | 5c |
93 | 01011101 | 5d |
94 | 01011110 | 5e |
95 | 01011111 | 5f |
96 | 01100000 | 60 |
97 | 01100001 | 61 |
98 | 01100010 | 62 |
99 | 01100011 | 63 |
100 | 01100100 | 64 |
101 | 01100101 | 65 |
102 | 01100110 | 66 |
103 | 01100111 | 67 |
104 | 01101000 | 68 |
105 | 01101001 | 69 |
106 | 01101010 | 6a |
107 | 01101011 | 6b |
108 | 01101100 | 6c |
109 | 01101101 | 6d |
110 | 01101110 | 6e |
111 | 01101111 | 6f |
112 | 01110000 | 70 |
113 | 01110001 | 71 |
114 | 01110010 | 72 |
115 | 01110011 | 73 |
116 | 01110100 | 74 |
117 | 01110101 | 75 |
118 | 01110110 | 76 |
119 | 01110111 | 77 |
120 | 01111000 | 78 |
121 | 01111001 | 79 |
122 | 01111010 | 7a |
123 | 01111011 | 7b |
124 | 01111100 | 7c |
125 | 01111101 | 7d |
126 | 01111110 | 7e |
127 | 01111111 | 7f |
128 | 10000000 | 80 |
129 | 10000001 | 81 |
130 | 10000010 | 82 |
131 | 10000011 | 83 |
132 | 10000100 | 84 |
133 | 10000101 | 85 |
134 | 10000110 | 86 |
135 | 10000111 | 87 |
136 | 10001000 | 88 |
137 | 10001001 | 89 |
138 | 10001010 | 8a |
139 | 10001011 | 8b |
140 | 10001100 | 8c |
141 | 10001101 | 8d |
142 | 10001110 | 8e |
143 | 10001111 | 8f |
144 | 10010000 | 90 |
145 | 10010001 | 91 |
146 | 10010010 | 92 |
147 | 10010011 | 93 |
148 | 10010100 | 94 |
149 | 10010101 | 95 |
150 | 10010110 | 96 |
151 | 10010111 | 97 |
152 | 10011000 | 98 |
153 | 10011001 | 99 |
154 | 10011010 | 9a |
155 | 10011011 | 9b |
156 | 10011100 | 9c |
157 | 10011101 | 9d |
158 | 10011110 | 9e |
159 | 10011111 | 9f |
160 | 10100000 | a0 |
161 | 10100001 | a1 |
162 | 10100010 | a2 |
163 | 10100011 | a3 |
164 | 10100100 | a4 |
165 | 10100101 | a5 |
166 | 10100110 | a6 |
167 | 10100111 | a7 |
168 | 10101000 | a8 |
169 | 10101001 | a9 |
170 | 10101010 | aa |
171 | 10101011 | ab |
172 | 10101100 | ac |
173 | 10101101 | ad |
174 | 10101110 | ae |
175 | 10101111 | af |
176 | 10110000 | b0 |
177 | 10110001 | b1 |
178 | 10110010 | b2 |
179 | 10110011 | b3 |
180 | 10110100 | b4 |
181 | 10110101 | b5 |
182 | 10110110 | b6 |
183 | 10110111 | b7 |
184 | 10111000 | b8 |
185 | 10111001 | b9 |
186 | 10111010 | ba |
187 | 10111011 | bb |
188 | 10111100 | bc |
189 | 10111101 | bd |
190 | 10111110 | be |
191 | 10111111 | bf |
192 | 11000000 | c0 |
193 | 11000001 | c1 |
194 | 11000010 | c2 |
195 | 11000011 | c3 |
196 | 11000100 | c4 |
197 | 11000101 | c5 |
198 | 11000110 | c6 |
199 | 11000111 | c7 |
200 | 11001000 | c8 |
201 | 11001001 | c9 |
202 | 11001010 | ca |
203 | 11001011 | cb |
204 | 11001100 | cc |
205 | 11001101 | cd |
206 | 11001110 | ce |
207 | 11001111 | cf |
208 | 11010000 | d0 |
209 | 11010001 | d1 |
210 | 11010010 | d2 |
211 | 11010011 | d3 |
212 | 11010100 | d4 |
213 | 11010101 | d5 |
214 | 11010110 | d6 |
215 | 11010111 | d7 |
216 | 11011000 | d8 |
217 | 11011001 | d9 |
218 | 11011010 | da |
219 | 11011011 | db |
220 | 11011100 | dc |
221 | 11011101 | dd |
222 | 11011110 | de |
223 | 11011111 | df |
224 | 11100000 | e0 |
225 | 11100001 | e1 |
226 | 11100010 | e2 |
227 | 11100011 | e3 |
228 | 11100100 | e4 |
229 | 11100101 | e5 |
230 | 11100110 | e6 |
231 | 11100111 | e7 |
232 | 11101000 | e8 |
233 | 11101001 | e9 |
234 | 11101010 | ea |
235 | 11101011 | eb |
236 | 11101100 | ec |
237 | 11101101 | ed |
238 | 11101110 | ee |
239 | 11101111 | ef |
240 | 11110000 | f0 |
241 | 11110001 | f1 |
242 | 11110010 | f2 |
243 | 11110011 | f3 |
244 | 11110100 | f4 |
245 | 11110101 | f5 |
246 | 11110110 | f6 |
247 | 11110111 | f7 |
248 | 11111000 | f8 |
249 | 11111001 | f9 |
250 | 11111010 | fa |
251 | 11111011 | fb |
252 | 11111100 | fc |
253 | 11111101 | fd |
254 | 11111110 | fe |
255 | 11111111 | ff |
256 | 100000000 | 100 |
ITスキルの習得方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。