基本情報技術者試験【1日目】情報の表現・基数変換
主にやること
情報量の単位の整理
2進数、8進数、16進数、10進数のお互いへの基数変換のやり方の整理
かかった時間
2時間半くらい
ノート
※最低限太字の部分だけ覚えとけばOK
コンピュータ内部では電気信号の「ON」,「OFF」の組み合わせですべての情報を表す。 →ON/OFFを2進数の0/1に対応させ、表現する。
情報量の単位
コンピュータで表す最小の単位をbitといい、2進数の1桁に相当する。
bitを8個集めたものをbyteといい、2進数8桁に相当する。
ON→ 1
OFF→0
↑これらが8個集まったものが情報の基本単位の1byte(1byteは8bit)
●接頭辞
byteは略してBと表される。
B×1000 → k(キロ) k×1000 → M(メガ) M×1000 → G(ギガ) G×1000 → T(テラ) …B×1012倍→T
B×1/1000 → m(ミリ) m×1/1000 → μ(マイクロ) μ×1/1000 → n(ナノ) n×1/1000 → p(ピコ) …B×1/1000-12→p
※コンピュータは処理速度が非常に速いので、時間を表すときによくm以下の単位が利用される。
●表現できる情報量
1bitで表現できる量 → 0,1の2通り 2bitで表現できる量 → 00,01,10,11の4通り 8bitで表現できる量 → 28で256通り nbitで表現できる量 → 2n通り
文字1つ1つに特定の2進数が割り当てられておりその値から文字を割り出す仕組み。 文字化けはある文字コードと別の文字コードの間で同じ2進数の値に別の文字が割り当てられているためにおこる現象。
・代表的な文字コード
SHIFT-JIS ASCIIコードと漢字・かなが混在可能。
基数変換
●基数と重み まずは10進数で考えてみる。 10進数の重みは 1桁目 100 = 1 2桁目 101 = 10 8桁目 107 = 10000000 n桁目 10n-1
例えば、以下のような数字があるとする。 32 1桁目 2×1("1"は重み) = 2 2桁目 3×10("10"は重み) = 30 つまり、2+30で32を表す。
・2進数の重みと2→10進数への変換 10進数に倣って2進数を考えてみる。 2進数の重みは 1桁目 20 = 1 2桁目 21 = 2 3桁目 22 = 4 n桁目 2n-1
例えば以下のような数字があるとする。これを10進数に対応させると 11 1桁目 1×1 = 1 2桁目 1×1 = 2 つまり、1+2で3を表す。
10 1桁目 0×1 = 0 2桁目 1×2 = 2 つまり、0+2で2を表す。
10111100 1桁目 0×1 2桁目 0×2 3桁目 1×4 4桁目 1×8 5桁目 1×16 6桁目 1×32 7桁目 0×64 8桁目 1×128 つまり、0+0+4+8+16+32+0+128で188を表す。
小数について考えると… まずは10進数で考えてみる。 10進数の重みは -1桁目 10-1 = 1/10 -2桁目 10-10 = 1/100 -3桁目 10-100 = 1/1000 -8桁目 1010000000 = 1/10000000 -n桁目 10^-(n-1)
例えば以下のような数字があるとする。 0.32 -1桁目 3×0.1 = 0.3 -2桁目 2×0.01 = 0.02 つまり、0.3+0,02で0.32を表す。
10進数に倣って2進数を考えてみる。 2進数の重みは -1桁目 2-1 = 1/2 -2桁目 2-2 = 1/4 -3桁目 2-4 = 1/8 -n桁目 2^-(n-1)
例えば以下のような数字があるとする。これを10進数に対応させると 0.11 -1桁目 1×1/2 = 1/2 -2桁目 1×1/4 = 1/4 つまり、1/2+1/4で3/4を表す。
0.10 1桁目 0×1/2 = 0 2桁目 1×1/4 = 1/4 つまり、0+1/4で1/4を表す。
10111100 1桁目 0×1/2 2桁目 0×1/4 3桁目 1×1/8 4桁目 1×1/16 5桁目 1×1/32 6桁目 1×1/64 7桁目 0×1/128 8桁目 1×1/256 つまり、0+0+1/8+1/16+1/32+1/64+0+1/256で61/256を表す。
・10→2進数への変換 重みから考える方法 一番重みの大きい桁が存在するか考える。 例えば、5.625という10進数の数字があるとする。 5.625 存在しうる2進数の最大の重みは10進数の4=2進数の100 これを取り除くと1.625
次に存在しうる2進数の最大の重みは10進数の1=2進数の1 これを取り除くと0.625
次に存在しうる2進数の最大の重みは10進数の05.=2進数の0.1 これを取り除くと0.125
次に存在しうる2進数の最大の重みは10進数の0.125.=2進数の0.001 これを取り除くと0
つまり、10進数の5.625は2進数では101.101に相当する。
割り算と掛け算で考える方法 まずは整数部と小数部に分ける。 整数部…基数で割った商を求め、その商を更に基数で割り、その最後の商と余りを下から並べていく 小数部…基数をかけた積を求め、その小数部を更に基数でかけ、その整数部を下から並べていく。 5.625 整数部 5/2=2…1 2/2=1…0 つまり、101
小数部 0.625×2=1.250 0.250×2=0.5 0.5×2=1.0 つまり、0.101
整数部と小数部を合わせて101.101
・2→8進数への変換 2進数の3桁は8進数の1桁に対応していることを利用し、 小数点を基準に3桁ずつ区切って、それぞれを8進数で表す。3桁にならない場合0を補う。 2進数1100.01を8進数に変換する 001 / 100 . 010 1 4 . 2
・2→16進数への変換 2進数の4桁は16進数の1桁に対応していることを利用し、 小数点を基準に4桁ずつ区切って、それぞれを16進数で表す。4桁にならない場合0を補う。 2進数1100.01を16進数に変換する 1100 . 0100 C . 4
※8→2進数、16→2進数への変換はこれらの逆を考える。