こんにちは!
IT系会社員のナガです
2進数を16進数に変換する方法を紹介します!
・基本情報技術者試験の勉強をしている
・ネットワークスペシャリスト試験の勉強をしている
そんな方のお役に立てる記事となっておりますので是非みていってください!
基本情報技術者試験では進数の変換問題が頻出します
ネットワークスペシャリスト試験でも16進数の理解が重要です
2進数を16進数に変換する際は、
2進数を10進数に変換するテクニックを利用しますので先に↓↓↓の記事を先にご確認ください
2進数を10進数に変換する方法
10進数を2進数に変換する方法
16進数は「0」~「9」と「A」~「F」の16種類の値を使って0~15の16個の数を表します。
私たちが普段使用している10進数との対応関係を意識しながら
16進数がどういうものか考えてみましょう!
10進数と16進数の対応関係はこのようになります。
この表は暗記してしまってください。
この表をみると「0x」ってなに?と思われるでしょう。
16進数を表記する時は先頭に「0x」をつける
16進数を表記する時、先頭に「0x」をつけるルールがあります
たとえば、10進数の「16」は16進数では「0x10」と表記します。
もし16進数に「0x」をつけるというルールがないと
「10」が10進数なのか16進数なのか区別ができなくなってしまいます。
区別できるようにするためのルールです!
ちなみに、
「0x」の「0」は「数字であること」
「0x」の「x」は「hexadecimal」(ヘクサディシマル)(英語で16進数という意味)の「x」です
この、16進数に「0x」をつけるというルールは必ず覚えておいてください。
16進数の繰り上がり方
つぎに、16進数の繰り上がり方をみていきましょう。
1桁の16進数は「0x0」から始まって「0xF」で終わります。
「0xF」に1を足すとどうなるでしょう?
16進数は1桁で16個(0~F)の数までしか表現できないため、
「0xF」に1を足すと次の位に繰り上げる必要があります。
「0xF」に1を足すと「0x10」となります。
10進数の9に1を足すと、10になる
(10の位が1になって、1の位が0になる)のと同じと考えてください!
16進数の特徴
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桁で表現できる数(16個)と同じです。
このように表現できる数(16個)が同じなので、
2進数4桁は16進数の1桁に対応します。
2進数を16進数に変換する時は、
この「2進数の4桁は、16進数の1桁に対応する」という特徴を利用します
2進数を16進数に変換してみましょう
変換してみましょう
具体的な数値で考えてみます。
下の図を見てください。
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桁に対応するという特徴があるため
2進数の8桁を4桁ごとに2つに分割しそれぞれを16進数に変換してから最後にくっつけるだけで変換が行えるのです
2進数の「10110011」を、16進数の「0xB3」に変換することができました。
慣れるまでは難しいと思いますので、
2進数の数値を変えて何度か変換の練習をしてみてくださいね
最後までお読みいただきありがとうございました!
コメント