【基本情報技術者】N進法を使った問題
高校数学では、「0110を10進数に直しましょう」などのN進数の問題が扱われます。
ただ、一瞬で単元が終わり、理解ができず、そのまま忘れてしまった方も多いと思います。
また、N進数の問題は基本情報処理技術者試験でも出題されます。
コンピューターの内部でも扱われる数値表現を例題を通して理解していきましょう。
N進法
N進法とは、n種類の記号を使って数字を表したものです。
2進数なら、0と1を使って全ての数字を表します。
普段私たちが使っているのは、10進数です。
0から9までの記号を使って全ての数字を表します。
当然ですが、数字が上限まで集まると、繰り上がる仕組みになっています。
早速例題を解いてみましょう。
*以下の例題3題は、基本情報処理技術者試験の午前試験の例題を参考に作成しています。
数学が大好きな高校生にもおすすめです。
例題1
10進数の演算式 9/128 を2進数で表してみましょう。
ヒントとしては、「分母の128は2の冪乗で表すことができる」です。
以下解説になります。少し考えてからご覧ください。
答えは、0.0001001です。
まずは、128は2の7乗であることを思い出します。
次に、9を2進数で表すと、1001ですね。
2進数で除法を行うときは、うまく算術シフトを利用します。
9を2進数で表した、1001を7ビット算術右シフトした値が正解になります。
ご覧のように、1ビット右シフトするごとに、小数点の位置が左にずれます。
例題2
32ビットのレジスタには、16進数9FACが入っています。 2ビットだけ右に論理シフトした値を、16進数で答えてください。
ヒントとしては、「16進数を2進数に直して、論理シフトさせる」です。
以下解説です。少し考えてからご覧ください。
答えは、27EBです。
シフトは、2進数のデータを対象として扱うので、16進数を2進数に直す必要があります。
16進数を2進数に直すコツは、1文字ずつ2の冪乗の和で表すことです。
その後、1×2^nの桁だけを1とし、0×2^nの桁は0とします。
16進数一桁に対して4ビットの2進数ができます。
で、1001111110101100という2進数に直すことができました。
2ビットだけ論理シフトさせましょう。
2ビットの論理シフトは、2進数の下2桁を削除し、上2桁に0を二つ加えます。
0010011111101011になりました。16ビットの2進数を4ビットずつ1桁の16進数に戻してあげておしまいです。
答えは、27EBです。
例題3
16進小数3C.9Dを、2の冪乗の和で表してください。
ヒントとしては、「16進数を2進数に直す」です。
例題2の考え方を使ってください。
以下解説になります。少し考えてからご覧ください。
答えは、以下の通りです。
では、3C.9Dを2進数に直してみましょう。
16進数の1桁は4ビットの2進数に表すことができます。
小数点を挟んで16ビットの2進数になりますね。
このように、00111101. 10011101と表すことができました。
この2進数を10進数で表したらおしまいです。
2の冪乗の形で表したままで良いです。
例題は以上となります。
結構難しめの問題を扱いました。
私たちが普段使っている10進数ではなく、2進数を理解しなければ、コンピュータ内部に関する問題を解くことはできません。
一旦10進数に直してから考える、などコツはいくつかあるので自分なりの方法で理解していきましょう。
他にも高校数学を扱ったコンテンツはいくつかあります。
「基礎から理解したい!」という方は、是非ご覧くださいませ。
【高校数学I】分散と標準偏差とは?(Lv.定期テスト)
【高校生向け】データの活用の例題①(Lv共通テスト)
また、基本情報と応用情報のチートシートも掲載していますので、ぜひご覧ください。
【試験直前ッ】基本情報・応用情報の午前チートシート|セキュリティ編
【試験直前ッ】基本情報・応用情報の午前チートシート|ネットワーク編
【試験直前ッ】基本情報・応用情報の午前チートシート|データベース&プログラミング編
【試験直前ッ】基本情報・応用情報の午前チートシート|システム編
【試験直前ッ】基本情報・応用情報の午前チートシート|開発・マネジメント編
【試験直前ッ】基本情報・応用情報の午前チートシート|テクノロジー編
【忙しい人のための】基本情報・応用情報の午前チートシート|総集編