2進数を16進数に変換してみましょう!

変換してみましょう!

「2進数」を「10進数」に変換することができましたね。

つぎは、「2進数」を「16進数」に変換する方法をみていきましょう!

ネットワークの世界では「16進数」で表される数値がたびたび登場しますので、
「16進数」がどういうものか理解しておくことが大切です。

「16進数」は「0」~「9」と「A」~「F」の16種類の値を使って0~15の数を表します。
私たちが普段使用している「10進数」との比較で
「16進数」がどういうものか考えてみましょう。

「10進数」と「16進数」の対応関係はこのようになります。
この表は暗記してしまってください。

「10進数」と「16進数」の対応表

「16進数」を表記する時、先頭に「0x」をつけるルールがあります。
たとえば、「10進数」の「16」は「16進数」では「0x10」です。
「0x」をつけないと「16」と「10」となります。
これでは「10進数」なのか「16進数」なのかを区別できないからですね。

「0x」の「0」は「数字であること」
「0x」の「x」は「hexadecimal」(英語で16進数のこと)の「x」です。
このルールは覚えておいてください。

「0x0」のつぎは「0x1」
「0x1」のつぎは「0x2」
「0x2」のつぎは「0x3」
・・・
「0xF」のつぎは、桁が繰り上がって「0x10」になります。

「2進数」と「16進数」には
・「2進数」の4桁は「16進数」の1桁に対応する
という特徴があります。

この特徴を理解するために、
2進数の4桁で表現できる数値の個数を考えてみます。
2進数4桁で表現できる最小の数は0000です。これは10進数で表しても0です。
2進数4桁で表現できる最大の数は1111です。
2進数4桁で表現できる最大の数である1111を10進数に変換すると15です。
※変換方法は下の図を見てください。変換方法の詳細はこちら。

つまり、2進数4桁で0(最小の数)~15(最大の数)の16個の数を表現できるのです。
これは16進数1桁で表現できる数と同じです。
つまり2進数4桁は16進数の1桁に対応するのです。

「2進数」を「16進数」に変換する時に、この
「2進数」の4桁は「16進数」の1桁に対応する
という特徴を利用します。

具体的な数値で考えてみます。

下の図を見てください。
「2進数」の「10110011」を「16進数」に変換しています。

まず、2進数「10110011」を4桁ごとに区切ります。
「1011」と「0011」に区切られます(①)。

つぎに、「1011」と「0011」のそれぞれを「10進数」に変換します。
「1011」は「11」、「0011」は「3」に変換されます (②) 。
「2進数」を「10進数」に変換する方法はこちら

つぎに、10進数「11」「3」を「16進数」に変換します。
「10進数」と「16進数」の対応表より 10進数「11」 は「0xB」、「3」は「0x3」に変換されます(③)。

最後に、「0xB」と「0x3」を結合します。「0xB3」となります(④)。
単純にくっつけるだけです。
「2進数」の4桁は「16進数」の1桁に対応する
という特徴があるため 単純にくっつけるだけでOKです。

「2進数」の「10110011」は「16進数」で表すと「0xB3」です。

慣れるまでは難しいと思いますので、
「2進数」の数値を変えて何度か変換の練習をしてみてくださいね。 

コメント

タイトルとURLをコピーしました