【プログラミングの基礎】超簡単な10進数、2進数、16進数の変換方法

2020年3月21日

今日はプログラミングの基本である、10進数・2進数・16進数についてです。

簡単な変換方法を教えて貰ったので、今回は超簡単に10進数↔︎2進数↔︎16進数へ変換する方法を記事にしていきます。

基本の変換

基本の変換表です。この表とこれから書くコツだけ掴めば、他の数字も変換する事ができます。

f:id:fantagista-ono14:20200307192450j:image

それでは早速やっていきましょう。

10進数↔︎2進数

2進数から10進数への変換は、2進数の数字の下に右から1、2、4、8と2の倍数の数字を書いていきます。次に2進数で1と書いてある箇所の上の数字を全部足します。足した数字が答えです。

(例1)1110(2進数)

f:id:fantagista-ono14:20200308144249j:image

1の部分を足すと14 になります。答えは基本の表とも一致します。

もう少し桁の多い2進数でいきます

(例2)10111001(2進数)

f:id:fantagista-ono14:20200308144306j:image

桁が増えると大きな数字の足し算になるので少し大変になりますが、128+32+16+8+1=185となります。2の倍数を下に書いて1の所を足すと解が出ます。

次に10進数から2進数への変換ですが、先ほどと同じ数字185(10進数)を考えます。

f:id:fantagista-ono14:20200311232305j:image

数字を比較して大きかったら0、小さかったら1になる。1になった次の桁は残った数字で比較する。という考え方です。

左の桁から順を追って説明します

①256は185より大きい数字なので0

②128は185より小さい数字なので1、次の桁は185ー128=57で比較

③64は57より大きい数字なので0

④32は57より小さい数字なので1、次の桁は57ー32=25で比較

⑤16は25より小さい数字なので1、次の桁は25ー16=9で比較

⑥8は9より小さい数字なので1、次の桁は9ー8=1で比較

⑦4は1より大きい数字なので0

⑧2は1より大きい数字なので0

⑨1は1は同じ数字なので1

上から順に並べると010111001となり、最初の0を省略すると185の2進数10111001となります。少し長くなってしまいましたが、引き算だけなので慣れると非常に楽に2進数へ変換出来ます。

2進数↔︎16進数

先ほどの185の2進数10111001を16進数に変換します。結果はb9です。やり方はこうです

f:id:fantagista-ono14:20200311232320j:image

①2進数を4桁毎に分けて10進数に変換する

②10進数を16進数に変換する。

4桁づつに分けて考える事で、小さい数字で考える事が出来る点が最大のポイントです。そして最初に書いた表:基本1の数字だけで変換している事がわかります。

最後に16進数から2進数への変換ですが、もう少し大きな数字について考えてみます。

16進数「3ec」を2進数に変換すると「1111101100」となります。

f:id:fantagista-ono14:20200311232333j:image

最初の2桁の00を省略して「1111101100」となります。

最後に

今回は簡単に10進数、2進数、16進数に変換できる方法について記事にしました。出来るだけ簡単に変換方法だけ理解できる様に、理論的な部分は省略して書きましたが、いかがでしたか。この方法を使用する方でも、一度はきちんと計算して確認した方が安心してこの方法を使っていただけると思います。

以上、ウホゴリでした。