n進数と基数変換 〜基本情報技術者試験対策〜

スポンサーリンク
休学生活

n進数と聞くと、なんだか難しそうに感じますよね。
ただ普段何気なしに考えていることを、意識的にやるだけでn進数は理解できます。

スポンサーリンク

意外と身近なn進数

普段の私たちは多くの場合「10進法」を利用して数を数えています。

1から数字を数え始め、桁が9の次に桁が上がります。
「0〜9」という10個の数字を使って数をカウントしているわけです。

ただこれを「10進数だ!」なんて意識しながら生活している人はいないですよね。


またその他の身近な例で言うと時間が挙げられます。
60秒→1分 60分→1時間といった具合に、60進法で時間を数えています。

60進法の場合は、「0〜59」の60個の数字で数えています。
2時59分とは言いますが、2時60分とは言いませんよね。

スポンサーリンク

基本情報技術者試験で問われるn進数

基本情報技術者試験を受けられる方が押さえるべきn進数は4つです。

まずは基本の10進数。使う数字は0〜9
そしてコンピュータの基本となる2進数。使う数字は0と1
情報処理の分野でよく出る8進数。使う数字は0〜7
なかなか馴染みのない16進数。使う文字は0〜F

この4つは必ず押さえる必要があります。

8進数

8進数は「0〜7」の数字を使います。

8進数はこんな感じです。

16進数

初めて聞く人も多いのではないでしょうか。この16進数。
僕は初めて聞きました。
またどのように数えていくのか想像もつきませんでした。

16進法は「0〜9の数字とA〜Fのアルファベット」を使って数えます。

「数をカウントするのに文字って…」って思いますよね。
なんだかかなり斬新な気がします。

16進数はこんな感じ。

正直かなりややこしいです!
またこの後扱いますが基数変換も難しい!!

スポンサーリンク

n進数の基数変換の考え方

n進法に関する試験問題の一つに基数変換があります。

基数変換とは、10進数で表された数字を8進数に変換したりする計算です。

基数とはn進法のnにあたる数字のこと。
2進数なら2、8進数なら8です。

例えば富士山の高さは3,776mです。
これを数えるときに皆さんはどのように数えるでしょうか。

おそらく多くの方が、無意識のうちに
1,000+7×100+7×10+6×1をして
「三一メートル」と答えるでしょう。

赤い数字の部分を分解して考えます。
1,000は10³、100は10²、10は10¹、そして1は10⁰
とそれぞれ表すことができます。

いずれも基数を累乗したものになっていることが確認できます。
これらの数字は各桁の重みといいます。

この考えこそが基本であり、これを意識することで基数変換は解けます。

n進数→10進数

では実際にこれら二つの概念を用いて基数変換をやってみましょう。

10(10)
1010(2)
12(8)
A(16)
いずれも同じ数値を表しています。そのことを確認していきましょう。

なお()の中の数字は何進法で表しているかを意味します。
(2)は2進数の という意味です。

1010(2)を基数変換するとこのようになります。

12(8)の場合。

16進数のAは9の次の数値ですから計算は特に必要ないですよね。

このように、全て同じ数値を表していることが確認出来ました。

ここでは、各桁の数に重みをかけ、それらを全て足すという作業をしました。

n進法→10進法の公式は
各桁の数×各桁の重み(2進数なら1,2,4,8…)の和
となります!

10進数→n進数

では反対に10進数をn進数に変換する場合はどうでしょう。

2進数は「0と1」、8進数は「0〜7」で表すということは既に述べた通りです。

ということは10進法の数字をこれらで割れば、基数変換できるということに気づきませんか?

割り算した場合、割り切れなかった余り割る数を超えることはありません
その余りを並べるのです。

つまりはこういうこと。

また10進数に小数が含まれている場合は、反対にかけ算をします。

10進数→n進数求め方は
整数部分:基数nで割り、あまりを下から上に数える
小数部分:基数nでかけ、整数部分を上から下へ数える
となります!

2進数→8進数、16進数

この計算は若干ややこしいです。

まず8=2³、16=2⁴と表せますよね。

この次数で二進数の数値を区切って計算するんです。

どういうことかというと。。

こういうことです。

8進数は2の三乗なので三桁で、16進数は2の4乗なので四桁で区切ります。

反対に8進数や16進数から2進数に変換する場合はこれと逆のことをします。
8進数の一桁は2進数の3桁に、16進数の一桁は2進数の4桁に分解。
この際上手く組みあわせを見つける作業が必要となります。

2進数→8進数、16進数の求め方は
3or4桁で区切り、各桁の数×各桁の重みしたものをつなげる
となります!

やること自体は難しくないですが、
なかなかめんどくさいというか、やり方を忘れがちというか…。
反復練習して、マスターしましょう!

スポンサーリンク

参考書

ちなみに僕の参考書はこちらです!


キタミ式イラストIT塾 基本情報技術者 令和02年 (情報処理技術者試験)

コメント

タイトルとURLをコピーしました