コンピューターで扱う16進数とは何?

Introduction

「16進数」とは何でしょうか?

本やネットの説明を読むと「基数を16として表したもの」とか「16を底として表したもの」と説明があります。

その通りなのですが、数学が苦手な方は「基数って何?」「数字に底って何?」となるかもしれません。

ここでは、そのような言葉をなるべく使用せずに説明していきたいと思います。

 

数字だけじゃなくてアルファベットも出てきたぞ

16進数とは

「16進数」と「16進法」の違い

最初に「16進数」と「16進法」の違いについて。

「16進数」を使う方法が「16進法」です。
そのままですね。
「16進数」も「16進法」も同じ意味で捉えておけば良いでしょう。

16進数とは

では、16進数(16進法)について説明していきます。

まず16進数の説明の前に、普段皆さんが使用している10進数について考えてみましょう。
10進数の意味を理解すると、16進数も理解しやすくなりますよ。

 

「10進数」とは、数字を「0」から「9」まで使い、それより大きい数になったら1桁増やす方法ですね。

では、なぜこれを「10進数」と呼ぶのでしょうか?
それは、「1桁で10種類の数字を使って良いから」です。

「ん?9までだから、9種類じゃないの?」と思った方。
「0」がありますよ。

どうでしょう。0を含めると確かに10種類の数字を使っていますね。

別に数字でなくても良いのです。

大切なのは、1つの桁で10種類だけ使って良いということ。

人類は「1」という大きさに「1」という形を使うようになっただけです。
なぜ「1」の大きさは「1」という形で「2」という大きさは「2」という形を使うようになったのか・・・。
これは、今回の話と関係ないので、ご自身で調べてください。

 

さて、話を戻しましょう。

「ということは、16進数は1桁に16種類の数字などの文字を使っていいのかな?」

と思った方。

正解です。

1桁に16種類の文字を使うのが16進数になります。

しかし数字は「0」から「9」しかありません。ということで、それより大きい数字はアルファベットを使用して表すことになっています。

つまり、数字の「10」の代わりに「A」、そして「B」「C」と増やしていきます。

では、下の表をご覧ください。
流れを確認して16進数の表現に慣れましょう。

10進数 16進数
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
16 10

ポイントは「10」からですね。

10・・・A
11・・・B
12・・・C
13・・・D
14・・・E
15・・・F

16進数なので、「16」までいきたくなりますが、「15」で16種類の文字を使い切ったことになるので1桁目は終わりになります。

そして次が「10」になります。

増やした桁はまた「1」から始まり、前の桁は「0」に戻します。

普段使用している10進数と同じ考え方です。

そして、

11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1E 1F
と進んで
20 21 22 ・・・

と増えていきます。

2桁目の最後は「FF」となり、3桁目の最初は「100」です。

どうでしょうか。感覚がつかめたでしょうか。

16進数の表記方法

突然目の前に「100」という数字があったとします。

普通は「100」は10進数の[ひゃく]と捉えますね。

しかし、2進数や16進数を学習中のときは、「いちぜろぜろ」かな?となります。

〇進数を使用しているかを分かり易くするために、括弧で括って右下に〇進数の数字を表記することになっています。

 

例えば、「100」の場合、

  • 10進数・・・(100)10
  • 2進数・・・(100)2
  • 16進数・・・(100)16

と表記します。

括弧の右下を見ると、その数字が2進数を表しているのか10進数を表しているのかすぐに分かります。

16進数のポイント

16進数を扱う際のポイントを簡単にまとめておきます。

1桁の最大値は「16」ではなくて「15」

途中にも書きましたが「16進数」という名前から、1桁目の最大である「F」が「16」だと勘違いしがちです。

「F」は10進数での「15」の大きさだということを覚えておきましょう。

アルファベットは「F」までしか使わない

16進数の桁の最大値は「F」です。

つまり「F」を超えるアルファベットは16進数には登場しません。

16進数がコンピュータの学習で登場する理由

さて、なぜこの16進数がコンピュータの学習時に登場するのでしょうか。

素朴な疑問ですね。

簡単に言うと「コンピュータにも人間にも扱い易い進数だから」ということになるでしょう。

「え、扱いづらいけど・・・」と思いましたね。

 

とても扱いやすいとは思えないぞ

 

人間が普段使っているのは10進数です。

当たり前の話。

では、コンピュータが普段使っているのは何かというと、2進数です。

こちらについては下のリンク先で説明しています。

なぜ、コンピュータでは2進法が使われているのだろう?
「情報」の学習を始めると、避けては通れない2進数の話。その学習の前に、なぜコンピュータを扱う際に2進数の知識が必要なのかを説明します。

 

ということで、

  • 人間・・・10進数
  • コンピュータ・・・2進数

 

では、人間にとって2進数はどうでしょうか。

扱いづらいですね。

特に大きな数字を扱いたい場合は困ってしまいます。

(例)
(620000)10・・・(1001 0111 0101 1110 0000)2
(3000000000)10・・・(1011 0010 1101 0000 0101 1110 0000 0000)2

ちなみに、上が「62万」下が「30億」です。

これを16進数にすると下のようになります。

(例)
(620000)10・・・(9 75E0)16
(3000000000)10・・・(B2D0 5E00)16

短くなってスッキリしましたね。

コンピュータの設定などで入力が必要な場合は、「0」「1」を大量に入力する2進数よりは、16進数の方が扱いやすそうです。

 

では、コンピュータにとって16進数はどうかというと、10進数よりは扱いやすいのです。

16進数の1桁は24になるので、2進数と16進数は仲が良いのです。
※ここは、2進数から16進数への変換を学習する時に説明します。

 

ということで、人間とコンピュータがお互いに歩み寄った感じで使われているのが16進数ということになります。

 

この16進数を具体的に見かけるのは、下記のような場所です。

  • 色の指定
  • 文字コード
  • ネットワークの設定
  • プログラミング

画像処理ソフトウェアを使用したことがある人は、色の指定で「#FFFFFF」や「#0033CC」などの表記を見かけたことがあると思います。

文字コードの表記でも見かけます。

自宅のルータを見ると、「000A 79EC D829」のようなネットワークアドレスを見かけるはずです。
また、プログラミング言語のひとつ「C言語」では前に「0x」を付けると16進数として扱うことができます。

このように、16進数はコンピュータにおいて様々な領域で利用されています。

練習問題

◎ 各問題をクリック(タップ)すると答えが出てくるよ

答え 100
答え FFFF
1桁で「〇」個の数字を使い、使い切ったら1桁増やす方法

 

16進数は色の指定(カラーコード)で良く見かけるよ