こんにちは。
今回は基本情報技術者試験でも頻出の「基数変換」について解説していこうと思います。
基本情報技術者試験では基数変換のやり方自体が問われることはもちろん、基数変換のやり方を知っていないと解けない問題なども出題されるため、ここでしっかりと習得しておきましょう!
基数変換は2進数、10進数、16進数の変換が問われます。
2進数、10進数、16進数の変換【基数変換】
2進数→10進数の変換方法
2進数から10進数に変換するには各位の数字に2の累乗をかけていき、それらを足すことで変換することができます。
これは10進数で10を掛けていくごとに桁が上がっていくのと同じ原理です。
2の何乗を掛けるのかは以下のようになります。(数字は例です。)
数字 | 1 | 0 | 1 | . | 0 | 1 |
2の累乗 | 2^3 | 2^1 | 2^0 | 2^-1 | 2^-2 |
また、小数の場合は小数点以下の数字に2のマイナスの累乗を掛けていきます。
では、実際に101.01という2進数で表された数を10進数に変換してみましょう。
まずそれぞれの位の数字に2の累乗を掛けていき、それらを足しあわせます。
1×2^3+0×2^1+1×2^0+0×2^-1+1×2^-2=9.25
よって、101.01という2進数で表された数を10進数に変換すると9.25となります。
10進数→2進数の変換方法
10進数から2進数に変換するにはまず10進数で表された数を商が0になるまで基数である2で割り算します。
そして、余りを下から上に読んだ数字が2進数で表された数字になります。
例えば10進数の4を2進数で表すと上図のように、100となります。
また、整数ではない数字を2進数に変換する場合は整数部と小数部に分けて変換します。
例えば4.75を2進数に変換する場合、4と0.75に分けて変換します。
4は先ほどと同様に2進数に変換します。
次に、0.75を2進数に変換するには、まず2を掛けます。2を掛けたら、その小数部にまた2を掛けていき、これを小数部が0になるまで繰り返します。
0.75×2=1.5→0.5×2=1.0
小数部が0になったところで、各計算結果の整数部(今回の例では1.5の1、1.0の1)を取り出した数字が2進数で表された数字となります。
つまり0.75を2進数に変換すると0.11となります。
よって4.75を2進数に変換すると100.11となります。
16進数→10進数の変換方法
16進数から10進数に変換するには2進数から10進数に変換する場合と同じ様に、各位の数字に16の累乗をかけていき、それらを足すことで変換することができます。
また、16の累乗を掛ける時にアルファベットを10進数に変換する点に注意してください。
では実際に16進数で表された数字、1C.Aを10進数に変換してみましょう。
Cを10進数に変換すると12、Aを10進数に変換すると10なので、
1×16^1+12×16^0+10×16^-1=28.625
となり、16進数で表された数字、1C.Aを10進数に変換すると28.625となることが分かります。
10進数→16進数の変換方法
10進数から16進数に変換するには10進数から2進数に変換する場合と同じ様に、10進数で表された数を商が0になるまで基数である16で割り算します。
やり方は10進数から2進数に変換する場合と同じですが、余りを16進数に変換することに注意してください。
そして、余りを下から上に読んだ数字が16進数で表された数字になります。
例えば10進数の814を16進数に変換すると上図のように、32Eとなります。
基本情報技術者試験の過去問にチャレンジしてみよう
まず以下の2つの問題を解いてみましょう。
問1
10進数の演算式7÷32の結果を2進数で表したものはどれか。
基本情報技術者試験ドットコムより
ア.0.001011
イ.0.001101
ウ.0.00111
エ.0.0111
平成27年秋期 午前問1
問2
16進小数3A.5Cを10進数の分数で表したものはどれか。
基本情報技術者試験ドットコムより
ア.939/16
イ.3735/64
ウ.14939/256
エ.14941/256
平成22年秋期 午前問1
問1.解答
7÷32は0.21875なのでこれを2進数に変換することで求めることもできますが、この問題はもっと簡単に解くことができます。
7/32は4/32+2/32+1/32と分解することができ、約分すると
1/8+1/16+1/32となり、分母を2の累乗で表すと
1/2^3+1/2^4+1/2^5というように変換できるので、2進小数で表すと「0.00111」になることが分かります。
よって答えはウとなります。
問2.解答
16進数のAを10進数に変換すると10、16進数のCを10進数に変換すると12なので、3A.5Cは
3×16^1+10×16^0+5×16^-1+12×16^-2=58+23/64=3735/64
よって答えはイとなります。
まとめ
今回は基本情報技術者試験でも頻出の「基数変換」について解説しました。
基数変換では2進数と10進数と16進数の変換が問われるのでしっかりとそれぞれの基数変換のやり方を習得しておきましょう!
最後までご精読いただきありがとうございました。
コメント