※この記事にはプロモーション(Amazonアソシエイト)が含まれています。
フリーの仕事がIT関係のものが多くなってきた。なんとなく用語を知っているだけでは物足りなくなってきたのでITパスポートでも受けようかと思ったけど、どうせ同じ値段ならもう少し詳しくて価値がありそうな基本情報技術者試験の方にしようと考え直す。プログラミングの復習もできそうだし…。
使っている参考書はこちら。
ネコちゃんイラストが可愛い。すっきりとまとまっていて勉強しやすい。
1つ困ったのが、解法の意味の解説がシンプルすぎてなぜそうなるのかわからないときがあること。数学好きとしては、理解できていない解法を丸覚え出来ない。
※その後別の参考書に乗り換え、ちらの参考書はサブとして使っています。新しい参考書については、こちらに書きました。
でもいろいろ調べても丁寧に解説している人が見つからない。仕方ないので、自分で考えた結果をメモしておく。
2進数の小数点以下の基数変換
例えば、0.75(10進数)を2進数に変換する。
0.75×2=1.5...※
0.5×2=1.0
小数点以上の数だけ拾っていけばいいので、0.11が答え。
今回は、なんでこれで小数点以下が2進数になるのか?を考えたメモを残します。
※より0.75=1.5÷2=1.5×2^-1=1×2^-1+0.5×2^-1...①
赤いところは2^-1に変換できてないのでさらに計算する
0.5=1.0×2^-1だから①に代入して
0.75=1×2^-1+0.5×2^-1=1×2^-1+(1.0×2^-1)×2^-1=1×2^-1+1×2^-2
ちゃんと、2進数の小数点以下の形に表現できました。小数点以上の数は2進数として確立したから拾って、小数点以下の数はまだ2進数として表現できていないからもう一度2を掛けるってことだね。
2進数を8進数に変換する
2進数を3桁ずつ区切ると8進数に変換しやすいらしい。
0111 0111(2)
3桁ずつにならないときは、頭に0を付ける。
00111 0111
3桁ずつ考えると
111=1×2^2+1×2^1+1×2^0=7
次に青のところなんだけど…青の最後の位0は2^3にあたる。つまり8進数でいえば位が上がるところになる。
フリーハンドだと絵が汚いなあ…。
11 0=1×2^2+1×2^1+0×2^0=6
なんだけど実はこの式は
11 0×2^3=(1×2^2+1×2^1+0×2^0)×2^3のことだから6×2^3で8進数の1つ位が上がった数字を示しているんだね。
赤いところも同じ。
001×2^6=(0×2^2+0×2^1+1×2^0)×2^6=1×2^6
答えは167(8)
2進数を16進数に変換する
この場合は4桁区切りになる。
0111 0111(2)
011 1=0×2^3+1×2^2+1×2^1+1×2^0=7
2^4=16なので、この4桁部分2^3以下が16進数の1の位にあたる。
次に16進数の1つ位が上がった部分の計算。
0111=0×2^3+1×2^2+1×2^1+1×2^0=7
でもこれは本当は、
0111×2^4=(0×2^3+1×2^2+1×2^1+1×2^0)×2^4=7×2^4
のことである。
2つの桁を合わせて77(16)