この記事では、多種多様な基数変換についてご紹介いたします。
「基本情報技術者(基礎理論①)」でもご紹介しましたが、コンピュータは2進数を得意としています。しかし人間にとってそこから情報を読み解くのは至難の業となっています。
そこで、使用する場面ごとに数の表記法を変更するということが必要になってきます。
基本情報技術者試験においては2進数、8進数、10進数、16進数それぞれで基数変換できることがマストとなっています(ITにおいてよく使用するというだけで基数自体は無限に存在します。)
この記事を読めばどうやって基数変換をするのかを学ぶことができます!
2進数→10進数
2進数の「桁の重み」は「2の累乗」です。10進数とは桁の重みが違います。
「桁の重み」、「桁数」がわからない方は「基本情報技術者(基礎理論①)」をご覧ください。
2進数→10進数の基数変換する際は、各桁の重みを掛け、各桁の積の和をもとめます。

16進数→10進数
16進数を10進数に変換する場合も、基本は「2進数→10進数」と変わりません。
まず、各桁に対し重みを掛け、各桁の積を合計します。
ただ、16進数表記にはアルファベットが含まれていますのでそれを10進数に変換してから計算を行う必要があります。

10進数→2進数
10進数から2進数に変換するときは整数部と小数部を分けて計算してやる必要があります。
では実際にどのように計算するのかを「24.225」を例に説明します。
整数部
10進数→2進数の変換は、まず10進数の整数の部分を2進数の基数である「2」で割り算し続け商が「0」になるまで計算し続けます。そして最後に余りを反対に並べ替えます。
「24.225」の整数部「24」は以下のように計算します。

小数部
では次に小数部の変換をしていきましょう小数部の変換は以下のような手順で行います。
①2進数の基数である「2」をかける
②①をしたときの結果の整数部を取り出す
③小数部が「0」になるまで①~②を繰り返す※
④取り出した整数部を取り出した順に並べる
※今回の計算において③で小数部が0になったがそうならないものがあります。それが「基本情報技術者(基礎理論①)」でも取り上げた無限小数、循環小数です。同じ数の塊が繰り返し出てくるときは計算をそこで打ち止める必要があることに注意してください。

最後に変換した整数部と小数部の合計を求めて「11000.101」となります。これが「24.625」を10進数から2進数に変換したものとなります。
10進数→16進数
10進数→16進数の変換は基本的に10進数→2進数の場合と同じです。整数部と小数部に分けて変換する必要があります。
今回は例として「41394.234375」を16進数に変換してみましょう!
整数部
2進数と違うのは16進数は割り算の後に余りを16進数に変換してやる必要があります。
やってみた方が早いのでやってみましょう!

小数部
こちらも2進数の時と違うのは計算の後に16進数への変換が必要なところのみです。

最後に変換した整数部と小数部の合計を求めて「A1B2.3C」となります。これが「41394.234375」を10進数から16進数に変換したものとなります。
n進数→10進数
最後にn進数から10進数に変換する方法です。基本情報技術者試験ではごくごく稀に普段よく見る2、10、16進数以外にも8進数や11進数を目にすることがあります。(おいおい勘弁してくれ…)
ですが、2進数、10進数、16進数の変換の仕方を学んだあなたであればどんな表記法(nを基数とする表記法をn進数と言います。)でも対応できます!
では例として基数がnの「2026.313」を10進数に変換してみましょう!

まとめ
いかがだったでしょうか、簡単という人も、まだよくわからないという方いらっしゃると思います。ただこの分野は今後コンピュータを学んでいく方にとって非常に大事な部分になるので必ず押さえておきましょう!(試験に合格するためにも!!)
①整数部、小数部は分けて変換しそのあと足し合わせる。
②n進数→10進数への変換は各位の数字に桁の重みをかけて合計を求める。
③10進数→n進数への変換は整数部は基数(n)で商が0になるまで割り続け余りを順に並べる。小数部は基数(n)でかけつづけるがその際、整数部に繰り上がった部分を順に並べる。




コメント