システム管理論 I / 付 録

2 進数

binary digit ── 計算機が数をどう表すか

この付録について

授業の 12 回とは別の、自習用の資料です。章末問題はありません。 計算機がなぜ 2 進数を使うのか、基数の変換をどうするのかを、その場で確かめながら学べます。

身近な進数

「10 進法しか使っていない」と思いがちですが、そんなことはありません。

進法使う数字身近な例
10 進法0 〜 9お金
60 進法0 〜 59時間(60 秒で 1 分、60 分で 1 時間)
12 進法0 〜 111 ダース、時計の文字盤
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 円
基数をそろえないと計算できないという、当たり前だが大事なことがここに現れています。

なぜ計算機は 2 進数なのか

位取りの考え方

どの進法でも、考え方は同じです。右から順に、基数のべき乗の重みが付くだけです。

10 進数 1234 の意味
1234
重み10³10²10¹10⁰
1000200304
2 進数 1101 の意味
1101
重み2⁰
8401

合計 8 + 4 + 0 + 1 = 13。つまり 2 進数の 1101 は 10 進数の 13 です。

動かして確かめる

数を入れて、各進法の表し方を見る数値を変える

10 進数から 2 進数へ ── 2 で割り続ける

10 進数を 2 で割り、余りを下から読むと 2 進数になります。

割り算の筆算を見る上のモデルと連動

2 進数・8 進数・16 進数

2 進数は桁が長くなりすぎます。そこで、まとめて読む方法が使われます。

進法2進数を何桁ずつまとめるか使う文字
8 進法3 桁ずつ(2³ = 8)0 〜 7
16 進法4 桁ずつ(2⁴ = 16)0 〜 9, A 〜 F
対応表
10進01234567 89101112131415
2進00000001001000110100010101100111 10001001101010111100110111101111
16進01234567 89ABCDEF

16 進数が便利な理由。 1 バイト(8 ビット)が、ちょうど 16 進数 2 桁で表せます。 だからメモリの中身や色の指定(#FF8000 など)は 16 進数で書かれます。

負の数 ── 2 の補数

計算機には「マイナス記号」を置く場所がありません。 そこで2 の補数という表し方を使います。

  1. 絶対値を 2 進数で書く
  2. すべてのビットを反転する(0↔1) ← これが 1 の補数
  3. 1 を足す ← これが 2 の補数
8 ビットでの 2 の補数を見る数値を変える

2 の補数の値打ち。 この表し方にすると、引き算を足し算として計算できます。 5 − 3 を「5 + (−3)」として、同じ加算回路で処理できる。 回路を減らせるので、計算機の設計が簡単になります。

← 第12回 授業トップへ →