next up previous
Next: 第4回 Up: 補足 Previous: この講義について

数の表記(2進法と浮動小数点)

まず, 一般的な数の表記(記数法)について述べます4.

通常, 数は 789.012のように書かれます. この意味は, $ 7\times 10^2 + 8\times 10^1 + 9\times 10^0 + 0\times 10^{-1}
+1\times 10^{-2}+2\times 10^{-3}$ の 10のベキ乗の係数を順に並べて 書いたもので, 10進法表記と言います. 10のことをこの表記の基数と言います. 10進法表記では, 数を表すのに 0 〜 9 の 10個の文字を用います. 10 を基数とするのは, ヒトの両手の指の総数が 10本であるからだと考えられていますが, 数学的に合理的である事が証明されている訳ではないと思います. ヨーロッパ系言語の 数詞を見ますと, 必ずしも言葉は 10進法ではありません. 従って, 10進法は 歴史的には割に新しい数の表記法です. 基数を 10にするのは人間的な都合ですが, 10以外の基数であっても, 上のような数の表記は, 筆算が可能であると言う意味では 合理的です. 例えば, ローマ数字を用いたかけ算を考えると, 実行がとても 難しい事は, ちょっとやればわかります(ローマ数字については, 各自調べて下さい).

上の基数を 2 に変えたものが, 2進法です. 2進法では, 数を表すのに 0, 1の 2つの文字しか用いません. 2進法で 101.011 は, $ 1\times 2^2 + 0\times 2^1 + 1\times 2^0 + 0\times 2^{-1}
+1\times 2^{-2} + 1\times 2^{-3}$ の意味で, これを 10進法で書くと $ \displaystyle{\frac{43}8}=5.375$ になります. 現在のコンピュータは, 電気を用いて計算していますが, 電圧の有る無しを 1, 0 に対応する事により, 2進法が使えます5. これとスイッチを組み合わせると, 2進法を計算する回路を作る事ができます. これがコンピュータの現実の姿で, 現在のコンピュータは, 半導体を用いた(数億個の)スイッチの集まりなのです. また, コンピュータの中にあるデータは, (アプリケーションプログラムも込めて) 2進法の数だけです6. コンピュータの世界では2進法は自然なのですが, 人間に取っては小さい数を表すのにも多量の桁数を必要とするため, 双方で便利な記法として$ 2^4=16$ を基数とする 16進法もよく用いられます. この場合, 数を表記するのに 16個の文字が必要となりますが, 数字としては存在しないので, A, B, C, D, E, Fをそれぞれ 10進法の 10, 11, 12, 13, 14, 15 を表す文字として用います 7.

もう 1つ, (数学ではあまり現れませんが)浮動小数点表記というものがあります. 化学で習ったアボガドロ数 $ 6.02\times 10^{23}$ や物理で習った 電気素量(電子 1個の電荷) $ 1.6\times 10^{-19}$ クーロンです. これらは, 人間の普段の暮らしからすると大きすぎたり, (絶対値が)小さすぎたり する値で, 表記の桁数を少なくするために, 上の様に数桁の有効数字に 10のベキ乗を掛けた形で書かれます. このような表記の仕方を, 浮動小数点数(浮動小数点表記)と言います. 左側にある有効数字の部分を仮数部, 右側にある 10のベキの部分を指数部と言います. コンピュータでも浮動小数点数の計算は可能であり, 上の例では 10進法で表記していますが, コンピュータでの実際の計算では, 仮数部, 指数部共に 2を基数とする数に変換されて計算されます.

通常の数, 浮動小数点数ともに, コンピュータの中にあるのは有限桁数の数であり, 数学のような理想的な整数や実数が計算機で実現できている訳ではありません. ただし, 普段の人間の実用に必要な範囲での数の世界は, 実現されていると言って良いでしょう.


  10進法で 0.1 と表記される数を 2進法で表すとどうなるか.


next up previous
Next: 第4回 Up: 補足 Previous: この講義について

2014-04-25