授業の 12 回とは別の、自習用の資料です。章末問題はありません。 計算機がなぜ 2 進数を使うのか、基数の変換をどうするのかを、その場で確かめながら学べます。
「10 進法しか使っていない」と思いがちですが、そんなことはありません。
| 進法 | 使う数字 | 身近な例 |
|---|---|---|
| 10 進法 | 0 〜 9 | お金 |
| 60 進法 | 0 〜 59 | 時間(60 秒で 1 分、60 分で 1 時間) |
| 12 進法 | 0 〜 11 | 1 ダース、時計の文字盤 |
| 2 進法 | 0, 1 | 計算機の内部 |
進数が違うもの同士の計算。 時給 1,000 円(10 進法)で 9:00 〜 17:45(60 進法)まで働いたら、いくらでしょうか。
働いた時間は 8 時間 45 分。これを 10 進法に直すと
45 分 ÷ 60 = 0.75 なので 8.75 時間。
よって 1,000 × 8.75 = 8,750 円。
基数をそろえないと計算できないという、当たり前だが大事なことがここに現れています。
どの進法でも、考え方は同じです。右から順に、基数のべき乗の重みが付くだけです。
| 桁 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 重み | 10³ | 10² | 10¹ | 10⁰ |
| 値 | 1000 | 200 | 30 | 4 |
| 桁 | 1 | 1 | 0 | 1 |
|---|---|---|---|---|
| 重み | 2³ | 2² | 2¹ | 2⁰ |
| 値 | 8 | 4 | 0 | 1 |
合計 8 + 4 + 0 + 1 = 13。つまり 2 進数の 1101 は 10 進数の 13 です。
10 進数を 2 で割り、余りを下から読むと 2 進数になります。
2 進数は桁が長くなりすぎます。そこで、まとめて読む方法が使われます。
| 進法 | 2進数を何桁ずつまとめるか | 使う文字 |
|---|---|---|
| 8 進法 | 3 桁ずつ(2³ = 8) | 0 〜 7 |
| 16 進法 | 4 桁ずつ(2⁴ = 16) | 0 〜 9, A 〜 F |
| 10進 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2進 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| 16進 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
16 進数が便利な理由。
1 バイト(8 ビット)が、ちょうど 16 進数 2 桁で表せます。
だからメモリの中身や色の指定(#FF8000 など)は 16 進数で書かれます。
計算機には「マイナス記号」を置く場所がありません。 そこで2 の補数という表し方を使います。
2 の補数の値打ち。 この表し方にすると、引き算を足し算として計算できます。 5 − 3 を「5 + (−3)」として、同じ加算回路で処理できる。 回路を減らせるので、計算機の設計が簡単になります。