• icon-clock
  • icon-undo

10進数 → 16進数 に変換するときは2進数にしてからがいい

10進数 → 16進数 に変換するときは2進数にしてからがいい

10進数から16進数に変換するとき、その数を16でわって求めるのって少し大変ですよね。

実は10進数を一旦2進数に変換することで、16でわるという面倒くさい計算を避けることができます。

今回は10進数から16進数に変換する際に一旦2進数に変換するメリットについて見てみたいと思います。




10進数から16進数に変換

10進数から16進数に変換するに当たって、一旦2進数に変換するとわり算にリソースを裂かずに済みます。


10進数 → 2進数 → 16進数に変換

この方法が、簡単な変換方法です。

16進数に変換する際に一旦2進数に変換した後に16進数に変換する方法です。

まず、10進数を2でわって2進数を求めます。

16でわって直接10進数を16進数に変換する場合よりも、手数が増える印象ですが煩雑さを軽減できる利点があります。


例1: (480)10を16進数に変換

① まず2進数に変換する。

dec2bin

  1. わられる数(480)をわる数(2)でわる。
  2. わられる数がわる数(2)を下回るまで計算する。
  3. わられる数がわる数(2)を下回ったら計算を終了する。
  4. こちらも余りを下から順番に並べたものが答え。


dec2bin

答え: (1 1110 0000)2

  • (1 1110 0000)2 = 480


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

1. ①で求めた2進数を4桁毎に区切って、それぞれを16進数で使われる記号に当てはめる。

(0001 | 1110 | 0000)2

桁が4桁に満たない場合は0を補います。

bin2hex

答え: (1E0)16

  • (1E0)16 = 480


手数は増えますが、わられる数を16でわるより2でわった方が楽ですよね。


10進数 → 16進数に変換

この方法は最もスタンダードな方法です。

10進数で表される数値を16でわり、その余りを並べて16進数の値とする計算方法です。

例2:(480)10を16進数に変換dec2hex

  1. わられる数(480)をわる数(16)でわる。
  2. わられる数がわる数(16)を下回るまで計算する。
  3. わられる数がわる数(16)を下回ったら計算を終了する。
  4. 余りを下から順番に並べたものが答え。


14は16進数の「E」なので、これも含め10以上の数値はアルファベットに置き換えます。

dec2hex

答え: (1E0)16

  • (1E0)16 = 480


16進数から10進数に変換

16進数から10進数にするときは、16進数の各桁の重みを各桁の数字と掛け算したものを最後に全て足し合わせることで求めることができます。

10進数を16進数に変換するときと違って、16進数から10進数に変換する場合は、一旦2進数に戻しても戻さなくても大して変わらないと思うので、この章では直接10進数にする方法のみ触れたいと思います。


例3: (1E0)16を10進数に変換hex2dec

  1. 各桁の重みを各桁の数値に掛け算する。

    ・(1 × 162)
    ・(14 × 161)
    ・(0 × 160)
  2. 1.で求めた総和が答え。

    (1 × 162) + (14 × 161) + (0 × 160) = 480


答え: (480)10


さいごに

今回は10進数を16進数に変換する方法を共有しました。

個人的には、10進数 → 16進数 の場合だけ、一旦2進数に変換する方が計算しやすいでしょう。

それでは次回にお会いしましょう。