基本情報技術者の勉強開始。勉強の動機、進数変換の計算方法など。

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進数へ

 

という変換がわかりやすい。

 

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