数値と文字の表現
このノートの問いがそのまま復習カードになり、忘れかけたころに出題されます。
0. どういうまとまりか
コンピュータの中では、数も文字もすべて 0 と 1 の並びで表されています。
0 と 1 だけで数を表す方法が二進法で、人が読みやすいように 2 進数を 4 桁ずつまとめたものが 16 進法です。
| 進法 | 使う数字 | 桁の重み(右から) |
|---|---|---|
| 10 進法 | 0〜9 | 1、10、100、1000、… |
| 2 進法 | 0 と 1 | 1、2、4、8、16、… |
| 16 進法 | 0〜9 と A〜F | 1、16、256、4096、… |
分かれ目は次の 3 つ。
- n ビットで表せるのは 2 の n 乗通り(8 ビットで 256 通り)。
- 2 進数の 4 桁が 16 進数の 1 桁にちょうど対応する(4 ビットで 16 通りだから)。
- 文字化けは、書いたときと違う文字コードで読むと起きる。
1. ビットとバイト
根拠: 学習指導要領 情報Ⅰ-(2)-ア-(ア)
0 か 1 かを表す 1 桁が情報の最小単位で、これをビットといいます。8 ビットをまとめたものがバイトです。
ビットとは何か?
0 か 1 かの 2 通りを表す、情報量の最小単位
英語の binary digit(2 進数の桁)を縮めた言葉。記号は bit または b。
1 バイトは何ビットか?
8 ビット
バイトの記号は B。小文字の b(ビット)と取り違えないようにする。
n ビットで表せる情報は何通りか?
通り
1 ビット増えるごとに 2 倍になる。3 ビットなら 8 通り、10 ビットなら 1024 通り。
1 バイトで表せる情報は何通りか?
256 通り
8 ビットなので 通り。0〜255 の整数を表せる。
データ量の単位 KB・MB・GB・TB を、小さい順に読み方で答えよ。
キロ → メガ → ギガ → テラ
1 つ上がるごとに約 1000 倍(2 進の区切りでは 1024 倍)になる。どちらで数えるかは問題文の指定に従う。
2. 二進法と 16 進法
根拠: 学習指導要領 情報Ⅰ-(2)-ア-(ア)
二進法は 0 と 1 の 2 つの数字だけで数を表す方法で、1 つ上の桁に上がるごとに重みが 2 倍になります。
2 進数では 1 と 1 を足すと桁が上がって 10 になります。
二進法とは、どんな数の表し方か?
0 と 1 の 2 つの数字だけを使い、2 になると桁が上がる数の表し方
コンピュータの回路は電圧の高低などの 2 つの状態で動くので、二進法と相性がよい。
2 進数を 10 進数に直すには、どうするか?
1 が立っている桁の重み(1、2、4、8、…)を足し合わせる
2 進数 1011 は、重み 8、2、1 の桁が 1 なので 。
10 進数を 2 進数に直すには、どうするか?
2 でわり続け、出た余りを下から順に(最後の余りから)並べる
商が 0 になるまで続ける。余りを上から並べると逆になるので注意する。
16 進数で使う 16 種類の文字は?
0〜9 と A〜F
A が 10、B が 11、C が 12、D が 13、E が 14、F が 15 を表す。
2 進数と 16 進数の変換が簡単なのはなぜか?
2 進数の 4 桁(4 ビット)が、16 進数の 1 桁にちょうど対応するから
4 ビットで表せるのは 16 通り。下の桁から 4 桁ずつ区切って、それぞれを 16 進数の 1 文字に置き換える。
3. 文字コード
根拠: 学習指導要領 情報Ⅰ-(2)-ア-(ア)
文字は、1 文字ずつに決めた番号(2 進数)で表されます。この対応の決まりを文字コードといいます。
文字コードとは何か?
1 つ 1 つの文字に割り当てた番号(2 進数)の対応の決まり
コンピュータは文字そのものではなく、この番号を記録している。
ASCII はどんな文字コードか?
英字・数字・記号などを 7 ビットで表す、アメリカで定められた文字コード
128 通りしか無いので、日本語の文字は表せない。
日本語を扱うために日本で広く使われてきた、1 文字を主に 2 バイトで表す文字コードは?
シフト JIS
英数字は 1 バイト、かなや漢字は 2 バイトで表す。
Unicode とは何か。また、UTF-8 はそれをどう表すか?
世界中の文字を 1 つの体系で番号づけした文字コード。UTF-8 はそれを 1〜4 バイトの可変長で表す方式
UTF-8 では ASCII と同じ英数字は 1 バイト、日本語のかなや漢字は主に 3 バイトになる。Web ページで最も広く使われている。
文字化けはなぜ起きるか?
書いたときと異なる文字コードで読み込み、番号を別の文字として解釈するから
シフト JIS で保存した文書を UTF-8 として開くと、意味の通らない文字の並びになる。
練習問題
問 1 2 進数 10110 を 10 進数に直せ。
22
右の桁から重みは 1、2、4、8、16。1 が立っているのは 16、4、2 の桁なので 。
問 2 10 進数 45 を 2 進数に直せ。
101101
2 でわり続けて、余りを記録する。
| わられる数 | 商 | 余り |
|---|---|---|
| 45 | 22 | 1 |
| 22 | 11 | 0 |
| 11 | 5 | 1 |
| 5 | 2 | 1 |
| 2 | 1 | 0 |
| 1 | 0 | 1 |
余りを下から順に読むと 101101。確かめ:重み 32、8、4、1 の桁が 1 なので 。
問 3 2 進数 11010110 を 16 進数に直せ。また、2 進数 0101 と 0011 を足した結果を 2 進数で答えよ。
D6、1000
前半:下の桁から 4 桁ずつ区切ると 1101 と 0110。1101 は で D、0110 は で 6。並べて D6。
後半:右の桁から足す。1 桁目は 1 と 1 で 0 に 1 繰り上がり、2 桁目は 0 と 1 と繰り上がりの 1 で 0 に 1 繰り上がり、
3 桁目は 1 と 0 と繰り上がりの 1 で 0 に 1 繰り上がり、4 桁目は 0 と 0 と繰り上がりの 1 で 1。結果は 1000
(10 進でいえば 5 と 3 を足して 8)。