目次
2020年の抱負&基本情報技術者を勉強するに至った経緯
2020年。さて抱負を考えよう。
…基本情報技術者の勉強をするか。
・基本情報技術者取得
・(極力)このブログを一日一記事更新
・ダーツ、Aフライト維持&AAフライト到達
とかかなぁ。
基本情報技術者は、取ることが目的ではなく、基礎的なことを知っているだけで新たな技術を学ぶときの手助けになるであろう…というざっくりした感じ。
特に切迫して必要な資格では全く無いが、新しいことを学ぶのは楽しいし、その知識がさらに新しい知識の習得に役に立つ…だろう。
自己分析や自分語りはそろそろやめて、ぼちぼち勉強していくか。
進数変換の計算方法
※見やすく、わかりやすく書こうと思ったが、諦めた。自己満足。
X^0 = 1
なぜ「aの0乗は1」なのか? – その納得の理由を紹介します
進数変換の際に重要となる考え方は、桁ごとに考えること。”重み”。
普段使っている10進数は、「1桁上がると重みが10倍になる」という考え方。
10進数の「1000」という値は「1 × 10^3」と表せられる
この時の1を「仮数」、10を「基数」、10^3を「重み」という
例題)10進数、1234
=1000 + 200 + 30 + 4
=1*1000 + 2*100 + 3*10 + 4*1
=1*10^3 + 2*10^2 + 3*10^1 + 1*2^0
という風に考える
小数点以下の場合、上位桁からr^-1,r^-2,r^-3…という重み。
r^-x = 1 / r^x
10進数への変換
2進数から10進数へ
例題)2進数、1101を10進数へ変換
1101
=1000 + 100 + 0 + 1
※2進数は1桁上がると重みが2倍になる。”10″は”2″、”100″は”2^2″、”1000″は”2^3″と表せられる。
=1 * 2^3 + 1 * 2^2 + 0 *2^1 + 1*2^0
=1*8 + 1*4 + 0 + 1
=8 + 4 + 0 + 1
=13
16進数から10進数へ
例題)16進数、FA97
=F000 + A00 + 90 + 7
=F * 16^3 + A * 16^2 + 9 * 16^1 + 7 * 16^0
=F * 4096 + A *256 + 9 * 16 + 7
=15*4096 + 10*256 + 9*16 + 7
=64181
少数がある場合
例題)16進数、0.4B
=0 + (4*16^-1 )+ (B*16^-2)
=(4*1/16) + (11*1/16^2)
=4/16 + 11/256
=0.25 + 0.04296875
=0.29296875
例題)2進数、0.01011
=(0*2^-1) + (1*2^-2) + (0*2^-3) + (1*2^-4) + (1*2^-5)
=0 + 0.25 + 0 + 0.0625 + 0.03125
=0.34375
10進数から他の進数への変換
例題)10進数、300
300に一番近い2の乗数は2^8=256。よって、最大の桁の重みは2^8
300
-256(2^8)
=44
-32(2^5)
=12
-8(2^3)
=4
-4(2^2)
=0
よって答えは
100101100
10進 :300
↓
2進 :1 0 0 1 0 1 1 0 0
重み :8,7,6,5,4,3,2,1,0
また、2ずつ割っていく。商が0まで割り、余りを下から並べる。
300/2=150余り0
150/2=75余り0
75/2=37余り1
37/2=18余り1
18/2=9余り0
9/2=4余り1
4/2=2余り0
2/2=1余り0
2/1=0余り1
100101100
※16進数の変換の場合、2の代わりに16を用いる。(16の乗数)。
n進数ならば、nを用いる。
少数の場合
例題)10進数、0.75
小数部に2ずつかけていき、0になるまで繰り返す。
0.75 * 2 =1.5(1と小数点以下0.5)
0.5 * 2 = 1.0(1と小数点以下0)
10進数0.75は、2進数0.11
相互変換
16進数と2進数の相互変換
16進数の1桁が2進数の4桁に対応している点を利用する。
例題)2進数、10110111100100を16進数へ変換
(00)10 1101 1110 0100
と4桁に分ける
2進数”0100″は16進数だと”4″
2進数”1110″は16進数だと”E”
2進数”1101″は16進数だと”D”
2進数”0010″は16進数だと”2″
よって
2DE4
16進数と10進数の相互変換
16進数は10進数へ、10進数は2進数へ
という変換がわかりやすい。