はじめに
今回は基本情報技術者の資格を取得するために前回の続きです!
では早速ですがスタートしていこうと思います!
基数について
前回は2進数、8進数、16進数というようなコンピュータで使われる日常では使わない進数について紹介していきたいと思いました!
その中で進数の概念である進数について学んでいこうと思います!
基数とは
n進数の基本となる数字
という事です!
なんの事???
そうですね、私も最初見た時なんのことと思いました!
簡単に言うと2進数なら基数は2というような感じです!
例で2進数が基数であるときのものについて考えてみたいと思います!
2進数の場合
1→10→100→1000→10000
というように2倍になっていくごとに桁数が上がってきていますよね!
これのことを2進数が持つ各桁の重みという事です!
1桁・・・2の0乗
2桁・・・2の1乗
3桁・・・2の2乗
というように、桁ごとに「2の(桁数ー1)乗」を行った数値、つまり基数を累乗した数値に2進数はなっています!
基数変換
基数変換は単純に基数を変換することです!
例えば、2進数から10進数に基数変換することを例として挙げてみます!
(例) 2進数1101.011を10進数に基数変換する
1101については
1101=8+4+0+1=13
0.011については
0.011=0+0.025+0.125=0.375
この2つを足すと
13+0.375=13.375
この13.375が10進数に基数変換した数になります!
では次に10進数からn進数へ変換する基数変換について紹介していこうと思います!
(例)10進数13.375を2進数に基数変換する
[整数部分について]
13÷2=6余り1
6÷2=3余り0
3÷2=1余り1
1÷2=0余り1
この様に解の部分が0になるまで割ります
その時のあまりの部分をこのやり方だと下から上の表すと1101になります!
この1101が整数部分の解になります!
[少数部分について]
0.375×2=0.75
0.75×2=1.5
0.5×2=1.0
この様に1.0になるまで掛けます!
この時の整数部分を上から下に表すと011になります!
この011が小数部分の解になります!
この整数部分と小数部分を合わせて1101.011になり、これが2進数の基数変換になります!
では2進数を8進数、16進数に変換するとどのようになるかを紹介していこうと思います!
(例)2進数1101.01を8進数に基数変換する
1101.01を3桁ごとに区切って考えます
|001|101|.|010|
001=0×4+0×2+0×1=1
101=1×4+0×2+1×1=5
010=0×4+1×2+0×1=2
となります!
これを上から並べて小数点の部分で区切れば、15.2になります!
(例)2進数1101.01を16進数に基数変換にする
これをする場合には4桁ごとに区切ります!
|1101|.|0100|
1101=1×8+1×4+0×2+1×1=13
これは16進数だとDになります!
0100=0×8+1×4+0×2+0×1=4
これも先ほどの8進数と同じように並べてD.4となります!
最後に
今回は基数について重点を置いてアウトプットしてきました!
この基数についてはとくに基数変換については私自身学んでみて結構難しかったです!
なんで難しかったん?
なんで難しかったかと考えると、単純に2進数とか16進数とか8進数のような普段使わない進数を使っていくのが慣れていなかったからかなと思います!
これからも基本情報技術者の勉強をしていくたびにアウトプット(自己満足的なもの)をしていこうと思います!
それでは、また次・・・
まぁPart3で会いましょう!
コメント