2進数、16進数…変換方法をまとめました

こんにちは、Tomです。

然ですが、あなたは普段どのように数を数えていますか?

おそらく、というかほぼ誰もが10進数で数えていると思います。

10進数とは、0〜9の10個の数字を使って数値を表現する方法のことです。

0から数えて9まで行ったら、次の位に上がります。

そして、1の位は0に戻り、10の位に1が立ち、10となります。

そんなこと説明されなくても普段使っているからわかりますよね。

小学校で習って以来、私たちはなんの問題もなく10進数で数を数えることができます。

9の次は10、19の次は20、99の次は100

といった具合に。

では、2進数で「111」の次はなんでしょうか?

16進数で「1F」の次はなんでしょうか?

ネットワークを勉強していると、10進数だけでなく、2進数や16進数が頻繁に出てきます。

これらの表現形式をマスターしなければ、ネットワークの勉強をしていく上で、大きな障壁になります。

今回は、2進数や16進数といった数値の表現形式について解説していきます。

1.はじめに

先ほども言いましたが、おそらくあなたは普段10進数で数を数えていると思います。

しかし、世の中には10進数だけでなく、さまざまな数値の表現形式があります。

例えば、時間(time)はいろんな表現形式が混ざっています。

秒(sec)や分(min)は60進数です。0〜59までの数字で表現して、59の次は上の単位に上がります。

0秒、1秒と数えていき、59秒の次は1分となります。

0分、1分と数えていき、59分の次は1時間となります。

そして、時間(hour)は24進数です。

0時間、1時間と数えていき、23時間の次は1日となります。

実際には、

23時間59分59秒

といった具合に、24進数と60進数を組み合わせて使います。

あまり意識していないかもしれませんが、あなたは普段の生活で、さまざまな数値の表現形式を使っているのです。

 

そして、コンピュータの世界では2進数が使われています。

2進数とは、「0」と「1」で数値を表現する形式です。

しかし、コンピュータが使う2進数は桁が大きくなりすぎるので、人間がわかりやすいように10進数や16進数に変換して考えます。

2進数から10進数、2進数から16進数への変換が分からなければ、コンピュータで扱われる情報について理解することは不可能です。

それでは2進数、16進数について学んでいきましょう。

1-1.10進数

先ほども説明しましたが、10進数は0,1,2,3,4,5,6,7,8,9の10個の数字を使って数値を表現する方法です。

0から9まで行ったら、位があがって10になります。

10進数の数の数え方は、

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,…

となります。

なにを今更って感じですよね。

普段使ってる数の数え方ですから、説明はこのくらいでいいと思います。

1-2.2進数

2進数は、0,1の2つの数字を使って数値を表現する方法です。

0、1と数えたらもう数字がありません。なので、位が1つあがって10となります。

10の次に11と数えたら、また数字がありません。なので位が1つあがって100となります。

このように2進数では0と1だけで数を数えていきます。

2進数の数の数え方は、

0,1,10,11,100,101,110,111,…

です。

1-3.16進数

16進数は、0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fの16個の数字と文字で数値を表現する方法です。

0からFまで数えたら、位があがって10となります。

10から1Fまで数えたら、10の位があがって20となります。

16進数の数の数え方は、

0,1,2,…,E,F,10,11,12,…,1E,1F,20,21,22,…,2E,2F,…

となります。

また、16進数には、そのことを明記するために、先頭に「0x」をつけます。

なので、16進数の0は「0x0」です。16進数の9は「0x9」です。

2.進数変換

それぞれの数値の表現形式がどのようなものなのか説明しましたが、実際どんなものなのかピンとこないと思います。

なので、実際にそれぞれの進数を変換してみましょう。

2-1.2進数→10進数の変換

まずは、2進数を私たちに身近な10進数に変換してみましょう。

2進数から10進数に変換するためには、2進数の各桁に2の累乗をかけて足し合わせます。

2の累乗は、一番小さい位から、

をかけていきます。

2進数の「1011110」は、10進数に変換したらどうなるでしょうか。

図のように、2進数の各位に2の累乗をかけていきます。

そして、それらを全て足し合わせます。

なので、2進数の「1011110」は、10進数では「94」です。

もう一問やってみましょう。

2進数の「111001110」は、10進数に変換したらどうなるでしょうか。

図のように、各桁に2の累乗をかけていきます。

そして、それらを全て足し合わせます。

なので、2進数の「111001110」は、10進数では「462」です。

2進数がどういうものなのか、わかりましたでしょうか?

では次は、10進数を2進数に変換してみましょう。

2-2.10進数→2進数の変換

10進数を2進数に変換するときは、10進数の数値を2でどんどん割っていきます。

もちろん奇数が出てきたら、2で割り切れません。

なので、2で割ってその余りを横に書きます。

そして、割った後の数をさらに2で割っていきます。

とりあえず10進数の「153」を2進数に変換してみましょう。

図のように、153を2でどんどん割っていき、余りが出たら横に書いておきます。

最後に余りを下から並べていきます。

なので、10進数の「153」を2進数を変換すると、

10011001

となります。

また、2の累乗を足し合わせることで、2進数に変換することもできます。

2進数の変換では、10進数の数値が2の累乗でどう表現されるかを求めているだけです。

例えば、10進数の「10」は8+2なので、2³と2¹で表現できるということです。

そして、使った数に対応する桁を「1」に、使っていない桁は「0」にすればいいのです。

よって、「1010」となります。

上の「153」も同じように求められます。

153 =  128 + 16 + 8 + 1

なので、使った数に対応する桁を1にして、それ以外を0にすれば、

10011001

となります。

10進数から2進数の変換は、慣れてくればこの方法の方が早いです。

2-3.2進数→16進数の変換

次は2進数を16進数に変換してみましょう。

その前に、10進数と16進数の対応表を覚えなければ、2進数を16進数に変換することはできません。

といってもこの程度です。

2進数を16進数に変換するときは、2進数を4桁ごとに変換していきます。

とりあえずやってみましょう。

2進数の「11000101」を16進数に変換したらどうなるでしょうか。

まずは4桁ずつ分けます。

1100   0101

そして、4桁ごとに10進数に変換します。

10進数に変換したら、先ほどの対応表を見て16進数に変換します。

そして、それらを並べて先頭に「0x」をつけます。

なので、2進数の「11000101」を16進数に変換すると

0xC5

となります。

2-4.16進数→2進数の変換 

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

16進数から2進数の変換では、2進数から16進数の変換の逆の手順を追います。

16進数の「0x8A」を2進数に変換したらどうなるでしょうか。

16進数の各桁を10進数との対応表から10進数に変換します。そして、それを2進数に変換します。

そして、それらを並べます。

なので、16進数の「0x8A」を2進数にすると、

10001010

となります。

2-5.16進数→10進数の変換

次は、16進数を10進数に変換してみましょう。

16進数から10進数への変換は、一度2進数に変換してから10進数に変換します。

16進数の「0x7C」を10進数に変換してみましょう。

まずは各桁を10進数に変換してから2進数に変換します。

慣れてくれば、いちいち10進数に変換しなくても2進数に変換できると思います。

とりあえず2進数に変換して「01111100」となりました。

それを10進数に変換します。

各桁に2の累乗をかけて足し合わせましょう。

なので、16進数の「0x7C」を10進数に変換すると、

122

となります。

2-6.10進数→16進数の変換

10進数から16進数への変換も、2進数に変換してから16進数に変換します。

では、10進数の「325」を16進数に変換してみましょう。

一度、2進数に変換します。2の累乗の和で表現してみましょう。

325 = 256 + 64 + 4 + 1

なので、2進数に変換すれば、「101000101」

それを4桁ごとに16進数に変換します。

1 → 1

0100 → 4

0101 → 5

です。

なので、10進数の「325」を16進数に変換すると、

「0x145」

となります。

3.まとめ

いかがでしたでしょうか?

一通り変換してみれば、それぞれの変換は慣れてくると思います。

これらの変換ができないと、ネットワークの各技術の説明で出てくる情報を理解することが難しくなります。

ぜひ何度も練習して自分のものにしてください。

今回も最後まで読んでくださり、本当にありがとうございました。