はじめに
現在プログラミングを学んでいますが、【課題の中で0xBFは10進数では幾つになるか】というような、2進数・10進数・16進数を自分の頭でそれぞれ変換して回答しなければならない問題があり、どのように考えて変換するのかを調べた結果を備忘録として書き記します。
下記のサイトがとても分かりやすくまとめてくださっており、学ばせていただきました。
参考:https://www.infraexpert.com/study/ip2.html
10進数と16進数
10進数が【0〜16】の時16進数に置き換えると下記の図のようになります。
10進数の【10〜15】までは16進数では【A〜F】を数字として使用します。
そのままでは数字だけの時に10進数と区別がつかないので16進数では数値の先頭に【0x】(ゼロエックス)をつけます。
2進数から16進数へ変換
10進数への変換を行う前にまずは2進数から16進数の変換を理解します。下記の図のように10進数の基準値をもとにすると分かりやすく変換できます。
上図のように2進数の【01011100】は16進数では【0x5C】ということがわかりました。逆の要領で行えば16進数を2進数に変換することも可能です。
16進数から10進数への変換
上記の2進数から16進数への変換を利用して16進数から10進数へ変換します。10進数の基準値を利用して2進数を10進数に当てはめて計算をすると合計値が10進数での数値となります。
詳細は下図参照
さいごに
他の方法での変換もあるのかもしれませんが、自分はこの変換方法が一番しっくりきて理解しやすいと思いましたので、記事にさせていただきました。