【応用情報技術者試験】r進法勉強日記 俺用メモ!

どうもきよです!

特に資格が必要というわけでもないですが、

自分を磨くため応用情報合格に向けて勉強していきたいと思います。

目指せ2021年春合格!

文献が古いですが、家にあったのでこれ使わせてください。。。

それ間違ってね?などがあればコメント頂けますと勉強になりますので嬉しいです!!

ということで今回はr進法について勉強したメモをしていきます。

■参考文献(アフィリエイトリンクです!良かったら購入してください!)
平成30年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

スポンサーリンク




■r進法種類

有名どころは下記

・2進法 基数=2  
 0と1の計算方法

・8進法 基数=8
 0~7の8通りでの計算方法 

・10進法 基数=10
 0~9の10通りでの計算方法 

・16進法 基数=16
 0~Fの16通りでの計算方法

※基数:r進法における元となる数字の個数?範囲?。 2進数では 0と1の2個なので基数は2 r=基数

■各桁の重み

10進数でいうところの1の位が0から始まり、1ずつ加減される。

例 10進数 123.45

1 = 100の位 = 10^2

2 = 10の位 = 10^1

3 = 1の位 = 10^0

4 = 小数点第1位 = 10^-1

5 = 小数点第2位 = 10^-2

■10進数からr進数への変換

・10進数から16進数 例:1786.76 = 6FA.C28F

■整数部
・1回目
1786 / 16 = 111.625 = 111 
0.625 * 16 = 10 = A

・2回目
111 / 16 = 6.9375 = 6 
0.9375 * 16 = 15 = F

・3回目
6 / 16 = 0.375 = 0
0.375 * 16 = 6
(1786)10 = (6FA)16
■少数部
・1回目
0.76 * 16 = 12.16  = 12 = C

・2回目
0.16 * 16 = 2.56 = 2

・3回目
0.56 * 16 = 8.96 = 8

・4回目
0.96 * 16 = 15.36 = 15 = F

・5回目
0.36 * 16 =  5.76 ※無限に続くのでここま
(0.76)10 = (C28F)16

※整数部は変換先の基数で商が0になるまで割る

※少数部は変換先の基数で少数が0になるまでかける

・10進数から8進数 例:1786.76 = 3372.605074

■整数部

1回目
1786 / 8 = 223.25 = 223
0.25 * 8 = 2

2回目
223 / 8 = 27.875 = 27
0.875 * 8 = 7

3回目
27 / 8 = 3.375 = 3
0.375 * 8 = 3

4回目
3 / 8 = 0.375 = 0
0.375 * 8 = 3
(1786)10 = (3372)8
■少数部
・1回目
0.76 * 8 = 6.08 = 6

・2回目
0.08 * 8 = 0.64 = 0

・3回目
0.64 * 8 = 5.12 = 5

・4回目
0.12 * 8 = 0.96 = 0

・5回目
0.96 * 8 = 7.68 = 7

・6回目
0.68 * 8 = 5.44 = 4 長いのでおしまい四捨五入しとく
(0.76)10 = (0.605074)8

・10進数から2進数への変換 例:1786.76 = 11011111010.110000101000111

■整数部
・1回目
1786 / 2 = 893
0 * 2 = 0

・2回目
893 / 2 = 446.5 = 446
0.5 * 2 = 1

・3回目
446 / 2 = 223
0 * 2 = 0

・4回目
223 / 2 = 111.5 = 111
0.5 * 2 = 1

・5回目
111 / 2 = 55.5 = 55
0.5 * 2 = 1

・6回目
55 / 2 = 27.5 = 27
0.5 * 2 = 1

・7回目
27 / 2 = 13.5 = 13
0.5 * 2 = 1

・8回目
13 / 2 = 6.5 = 6
0.5 * 2 = 1

・9回目
6 / 2 = 3
0 * 2 = 0

・10回目
3 / 2 = 1.5 = 1
0.5 * 2 = 1

・11回目
1 / 2 = 0.5 = 0
0.5 * 2 = 1
(1786)10 = (11011111010)2

■少数部
■1回目
0.76 * 2 = 1.52 = 1

■2回目
0.52 * 2 = 1.04 = 1

■3回目
0.04 * 2 = 0.08 = 0

■4回目
0.08 * 2 = 0.16 = 0

■5回目
0.16 * 2 = 0.32 = 0

■6回目
0.32 * 2 = 0.64 = 0

■7回目
0.64 * 2 = 1.28 = 1

■8回目
0.28 * 2 = 0.56 = 0

■9回目
0.56 * 2 = 1.12 = 1

■10回目
0.12 * 2 = 0.24 = 0

■11回目
0.24 * 2 = 0.48 = 0

■12回目
0.48 * 2 = 0.96 = 0

■13回目
0.96 * 2 = 1.92 = 1

■14回目
0.92 * 2 = 1.84 = 1

■15回目
0.84 * 2 = 1.64 = 1

■16回目
0.64 * 2 = 1.28 = 1 長いのでおしまい
(0.76)10 = (110000101000111)2

■16進数からr進数への変換

・16進数から10進数の変換 例:4C5.A8 = 1221.65625

■整数部
・1回目
4 * 16^2 = 4 * 16 * 16 = 1024

・2回目
C * 16^1 = C * 16 = 12 * 16 = 192

・3回目
5 * 16^0 = 5

・全部足す
1024 + 192 + 5 =  1221
(4C5)16 = (1221)10
■少数部
・1回目
A / 16^-1 = A / 16 = 10 / 16 = 0.625

・2回目
8 / 16^-2 = 8 / 16 / 16 = 0.03125

・全部足す
0.625 + 0.03125 = 0.65625
(0.A8)16 = (0.65625)10

※整数部 = 各桁を各桁の重みで割り、全て足す

※少数部 = 各桁を各桁の重みで割り、全て足す

・16進数から2進数への変換 例:4C5.A8 = 010011000101.10101000

■整数部
4 = 0100
C = 1100
5 = 0101
(4C5)16 = (010011000101)2
■少数部
A = 1010
8 = 1000
(0.A8)16 = (10101000)2

・16進数から8進数への変換 例:4C5.A8 = 2305.520

■整数部
・一度2進数変換
4 = 0100
C = 1100
5 = 0101

・結合して3bitに分割する
010011000101
010 = 2
011 = 3
000 = 0
101 = 5
(4C5)16 = (2305)8
■少数部
・一度2進数変換
A = 1010
8 = 1000

・結合して3bitに分割する
10101000
101 = 5
010 = 2
000 = 0
(0.A8)16 = (520)8

■8進数からr進数への変換

・8進数から16進数への変換 例:5712.132 = BCA.2D0

■整数値
・一度2進数変換
5 = 101
7 = 111
1 = 001
2 = 010

・結合して4bitに分割する
101111001010
1011 = B
1100 = C
1010 = A
(5712)8 = (BCA)16
■小数値
・一度2進数変換
1 = 001
3 = 011
2 = 010

・結合して4bitに分割する 4bitに分けられない場合は後ろに0を付加する
001011010000
0010 = 2
1101 = D
0000 = 0
(132)8 = (2D0)16

・8進数から10進数への変換 例:5712.132 = 3018.17578125

■整数値
5 = 5 * 8^3 = 5 * 8 * 8 * 8 = 2560
7 = 7 * 8^2 = 7 * 8 * 8 = 448
1 = 1 * 8^1 = 1 * 8 = 8
2 = 2 * 8^0 = 2

・全て足す
2560 + 448 + 8 + 2 = 3018 
(5712)8 = (3018)10
■小数値
1 = 1 * 8^-1 = 1 / 8 = 0.125
3 = 3 * 8^-2 = 3 / 8 / 8 = 0.046875
2 = 2 * 8^-3 = 2 / 8 / 8 / 8 = 0.00390625

・全て足す
0.125 + 0.046875 + 0.00390625 = 0.17578125
(0.132)8 = (0.17578125)10

・8進数から2進数への変換 例:5712.132 = 101111001010.001011010000

■整数値
5 = 101
7 = 111
1 = 001
2 = 010
(5712)8 = (101111001010)2
■小数値
1 = 001
3 = 011
2 = 010
(132)8 = (001011010000)2

■2進数からr進数への変換

・2進数から16進数への変換 例:1100101011011110.010010111111 = CADE.4BF

■整数値
・4bitごとに分割する
1100 = C
1010 = A
1101 = D
1110 = E
(1100101011011110)2 = (CADE)16
■小数値
・4bitごとに分割する
0100 = 4
1011 = B
1111 = F
(010010111111)2 = (4BF)16

・2進数から10進数への変換

例:1100101011011110.010010111111 = 51934.29663086

■整数部
・4bitごとに分割にして16進数にする
1100 = C
1010 = A
1101 = D
1110 = E

・16進数から10進数に変換する
C = 12 * 16^3 = 12 * 16 * 16 * 16 = 49152
A = 10 * 16^2 = 10 * 16 * 16 = 2560
D = 13 * 16^1 = 13 * 16 = 208
E = 14 * 16^0 = 14

・全部足す
49152 + 2560 + 208 + 14 = 51934
(1100101011011110)16 = (51934)10
■少数部
・4bitごとに分割にして16進数にする
0100 = 4
1011 = B 
1111 = F

・16進数から10進数に変換する
4 = 4 * 16^-1 = 4 / 16 = 0.25
B = 11 * 16^-2 = 11 / 16 /16 =0.04296875
F = 15 * 16^-3 = 15 / 16 / 16 / 16 = 0.00366211

・全部足す
0.25 + 0.04296875 + 0.00366211 = 0.29663086
(010010111111)2 = (0.29663086)10

・2進数から8進数への変換 例:1100101011011110.010010111111 = 145336.2277

■整数値
・3bitごとに分割する 波数が出る場合は、先頭に0を挿入する
001100101011011110
001 = 1
100 = 4
101 = 5
011 = 3
011 = 3
110 = 6
(1100101011011110)2 = (145336)8
■少数部
・3bitごとに分割する
010010111111
010 = 2
010 = 2
111 = 7
111 = 7
(010010111111)2 = (2277)8

結構時間がかかりましたが、なんとなく変換方法は分かった気がします。。

間違っているやこうしたほうがいいなどありましたら、

ぜひコメントお願いいたします!!

最後にまたアフィリエイトリンク貼らせてくださいorz

■参考文献(アフィリエイトリンクです!良かったら購入してください!)
平成30年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

以上、よろしくお願いいたします。

スポンサーリンク




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク




%d人のブロガーが「いいね」をつけました。