ニッシー
1990年生まれ
血液型 O型

こんにちは。ITブログアルケーナム管理人のニッシーです。

詳細プロフィールへ

お問い合わせへ






2018-11-15

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







10進数から16進数に変換するとき、その数を16で割って余りを求めるより、実は2進数への変換を挟むことで、16を割るという煩わしさを抑えて計算を行うことができます。


今回は、10進数と16進数の関係で切っても切れない2進数ですが、今回は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進数に変換する。





1. 割られる数(480)を割る数(2)で割る。

2. 割られる数が割る数(2)を下回るまで計算する。

3. 割られる数が割る数(2)を下回ったら計算を終了する。

4. こちらも、余りを下から順番に並べたものが答え。






答え:(1 1110 0000)2


・480 = (1 1110 0000)2


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


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


  (0001 | 1110 | 0000)2


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





答え:(1E0)16


・480 = (1E0)16


手数は増えますが、割られる数を16で割るより、2で割った方が楽だと思います。



10進数 → 16進数に変換




この方法は、最もスタンダードな方法で、学校ではこの方法を先ず習うと思います。


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



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





1. 割られる数(480)を割る数(16)で割る。

2. 割られる数が割る数(16)を下回るまで計算する。

3. 割られる数が割る数(16)を下回ったら計算を終了する。

4. 余りを下から順番に並べたものが答え。


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






答え:(1E0)16


・480 = (1E0)16





16進数から10進数に変換






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


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


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





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


・(1 × 162)


・(14 × 161)


・(0 × 160)


2. 1.で求めた総和が答え。


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


答え:(480)10





最後に



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


是非、参考にしていただければ幸いです。


それでは次回にまたご期待を!














プロフィール

ニッシー
1990年生まれ
血液型 O型

こんにちは。ITブログアルケーナム管理人のニッシーです。

詳細プロフィールへ

お問い合わせへ