基数変換はITパスポート試験のテクノロジ系分野でまず間違いなく問われる内容の一つです!
とても基礎的な内容ですが、普段の生活の中であまり馴染みのない分野でもありますので独学の方には特に取っつきにくい印象があると思います
試験で問われる問題自体は計算方法さえ覚えてしまえば、ひっかけなどなく簡単に解けますので確実に得点源にしたいところ
慣れないうちは練習問題を繰り返し解くことで定着させるのが良いと思います!
今日もガンバレ!!
がんばります!
基数変換とは?
基数とは、その名の通り基準もしくは基本となる数のことで、この基数をもとに数字をカウントすることになります
この基本となる数を別の基本となる数に変換することを基数変換と呼びます
これだけではよく分からないと思いますので、もう少し具体的な話をすると
一般的によく使われる基数としては、普段の私たちの生活で使用されている10を基準に数える方法である10進数とパソコンの内部で使われている2を基準とする2進数が挙げられます
例えばこの10を基準とする数え方を2を基準とする数え方に変換することを基数変換と言うのです
良く使用される基数として10進数と2進数、8進数、16進数が挙げられます
それぞれの基数の説明は以下の通りとなります
10進数 | 0~9までの10個の数字(記号)で表現する 私たちの普段の生活でも使われていて人との相性が良い |
2進数 | 0と1の2個の数字(記号)で表現する コンピューターは電気のオンとオフでの判断が得意なため相性が良い |
8進数 | 0~7までの8個の数字(記号)で表現する 10進数と2進数の橋渡し的な役割、2進数の3桁分を1桁で表現できる |
16進数 | 0~9までの10個の数字とA~Fまでの6個の英字(記号)で表現する 10進数と2進数の橋渡し的な役割、2進数の4桁分を1桁で表現できる |
ここで登場する8進数や16進数ですが、人がコンピューターを扱う際の橋渡しとしてよく使われます
2進数での表現だと桁が大きくなり過ぎて人にとっては見ずらい、判断しづらいとなるため2進数に変換しやすく桁数を縮めることができるということで重宝されます
それぞれの基数での数え方の関係は以下の対応表のようになります
10進数 | 2進数 | 8進数 | 16進数 |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
16 | 10000 | 20 | 10 |
変換方法
2進数から10進数への変換方法
例えば10進数で「123.45」という数字を分解すると
1×102 + 2×101 + 3×100 + 4×10-1 + 5×10-2 ⇒ 100 + 20 + 3 + 0.4 + 0.05 = 123.45
と表現することができます
ここで出てくる10という数字が基数であり重みとも呼ばれます
同様に2進数で「101.11」という数字であれば
1×22 + 0×21 + 1×20 +1×2-1 + 1×2-2
と表現することができます
ここで出てきた数式の通りに2の累乗を重みとして足していけば10進数に変換できます
1×22 + 0×21 + 1×20 +1×2-1 + 1×2-2 ⇒ 4 + 0 + 1 + 0.5 + 0.25 = 5.75 (これが10進数での表現)
10進数から2進数への変換方法
コチラの場合も重みを軸に変換を考えていきます
上の例で10進数「5.75」を2進数で表すと「101.11」となりますが変換していく際は大きい桁の重みから考えていくことで進めて行きます
5.75の場合では4(=22)の重みが必要かどうかを考えると 4 < 5.75 ですので重み4の桁には1が入ると考えます
4の重みを使えばもとの 5.75 – 4 = 1.75が残りとなります
さらに1.75に対し2の重みが必要か考えると 2 > 1.75ですので、この桁には0が入ることになります
まとめると以下のようになります
4の位 | 2の位 | 1の位 | 1/2の位 | 1/4の位 |
1 | 0 | 1 | 1 | 1 |
2進数と8進数・16進数の変換方法
2進数からの8進数、16進数は覚えてしまえば比較的簡単に行えます
例として「1101.11」という2進数をもとに考えてみます
まず8進数に変換する場合は、
小数点「 . 」を基準に3桁区切りで考えてそれぞれを8進数で表現します
3桁ごとに区切る際に数値がない桁のところには 0 を補います
2進数 | 1 | 1 | 0 | 1 | . | 1 | 1 | |||
3桁区切りにする | 0 | 0 | 1 | 1 | 0 | 1 | . | 1 | 1 | 0 |
重みをかけて足す | 4×0 | 2×0 | 1×1 | 4×1 | 2×0 | 1×1 | 4×1 | 2×1 | 1×0 | |
8進数 | 1 | 5 | . | 6 |
よって2進数「1101.11」は8進数で表現すると「15.6」となりました
戻すときはそれぞれを3桁の2進数に変換しつなぐことで完成します
1 ⇒ | 0×22 + 0×21 + 1×20 ⇒ | 001 |
5 ⇒ | 1×22 + 0×21 + 1×20 ⇒ | 101 |
6 ⇒ | 1×22 + 1×21 + 0×20 ⇒ | 110 |
同じように2進数を16進数に変換する場合は、
小数点「 . 」を基準に4桁区切りで考えてそれぞれを16進数で表現します
4桁ごとに区切る際に数値がない桁のところには 0 を補います
2進数 | 1 | 1 | 0 | 1 | . | 1 | 1 | ||
4桁区切りにする | 1 | 1 | 0 | 1 | . | 1 | 1 | 0 | 0 |
重みをかけて足す | 8×1 | 4×1 | 2×0 | 1×1 | 8×1 | 4×1 | 2×0 | 1×0 | |
16進数 | D | . | C |
よって2進数「1101.11」は16進数で表現すると「D.C」となりました
注意点としては16進数ですので重みを足した際に8+4+0+1=13とはせずに「D」、
8+4+0+0=12とはせずに「C」とすることを忘れないようにしましょう!
試験の概要について
ITパスポート試験の全体的な試験内容につきましては以下のリンク先にまとめておりますのでご参照いただけますと幸いです!
参考動画のご紹介
下記のyoutube動画を参考にさせていただいておりますので、ご興味のある方はご参照くださいm(_ _)m
コメント