« 【応用情報】 基礎理論-補数2 | Main | 【応用情報】 基礎理論-浮動小数点1 »

February 02, 2013

【応用情報】 基礎理論-数値変換

■固定小数形式と浮動小数形式

いつものように、まず10進数で小数の表現方法を考えてみましょう。小数とは、小数点を意味するドット(.)を持つ数のことです。当たり前のことですが、図1のようにドットの左側に1以上の数を書き、ドットの右側に1未満の数を書きます。小数点は、1以上の桁と1未満の桁の境目を表す記号だと言えます。

このような表現方法を「固定小数形式(こていしょうすうてんすうけいしき)」と呼びます。小数点の位置が、その左右で1より大きいかどうかを表す固定的な境目となっているからです。



小数の表現方法は、もう一つあります。それは「浮動小数形式(ふどうしょうすうてんすうけいしき)」と呼ばれるものです。図2に例を示します。

 浮動小数形式では、「○○×△△の□□乗」というスタイルで小数を表します。このスタイルでは、同じ小数を様々な表現で表すことができます。例えば、3.14という数は、3.14×100、31.4×10-1、314.0×10-2、…などの様々な表現で表せます。これら3つの表現を見比べて分かるように、小数点の位置が変化できるから「浮動(固定でない)」というわけです。

●固定小数形式の2進数
コンピュータでは、浮動小数点形式の2進数で小数を取り扱っています。それに関しては、後で説明しますので、まずはお遊びとして(ドットが使えると して)固定小数形式の2進数について考えてみましょう。まず問題です。0.1という2進数は、10進数でいくつになるか分かりますか?

 答えは、0.5です。2進数では桁が上がると、重みが2倍されていきます。逆に考えれば、桁が下がると、重みが1/2倍になります。この重みと桁の数である1を掛けて、答えは0.5になります。

それでは次の問題です。0110.1101という2進数は、10進数でいくつになりますか?図3を見ながら考えてください。「重みを掛けて足す」という考え方は、整数でも小数でも、2進数でも10進数でも、同じです。
Photo

●浮動小数形式の2進数

コンピュータは、小数を浮動小数形式の2進数で取り扱っています。0と1だけを使って、「○○×△△の□□乗」というスタイルを表現するために、複数桁の2進数を部分的に分けて使います。どのように分けるかを規定しているのいがIEEEという組織です。「○○×△△の□□乗」の○○の部分を「仮数部(かすうぶ)」と呼びます。△△の部分を「基数部(きすうぶ)」と呼びます。□□の部分を「指数部」と呼びます。基数部は、2進数では2に決まっているので省略し、仮数部、指数部、そして0ならプラス1ならマイナスを意味する符号部を使って小数を表します。複雑なスタイルなので、浮動小数形式では全体を「反転して1」というマイナス表現は使われません。

 IEEEが規定する浮動小数形式には、64桁の2進数で小数を表す「倍精度浮動小数(ばいせいど・ふどうしょうすうてんすう)」と32桁の2進数で小数を表す「単精度浮動小数(たんせいど・ふどうしょうすうてんすう)」の2種類があります。桁数の多い倍精度浮動小数の方が、桁数の少ない単精度浮動小数より表現できる数の範囲が広くなります。
Photo_2

|

« 【応用情報】 基礎理論-補数2 | Main | 【応用情報】 基礎理論-浮動小数点1 »

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference 【応用情報】 基礎理論-数値変換:

« 【応用情報】 基礎理論-補数2 | Main | 【応用情報】 基礎理論-浮動小数点1 »