7.実数の2進表現について
たとえば、3.14159という数があったとき、先頭に小数点が来るように、
という、表記ができる。
先頭に小数点が来るように位置をずらすことを、正規化(normalize)といい、この記法を浮動小数点(floating point)表記という。
これに対して、通常の実数の 表記を、固定小数点(fixed point)表記という。
- 浮動小数点表記により、実数は唯一の記法で表現される。
- 浮動小数点表記のとき、上の
の部分を仮数(mantissa)、10を基数(base)、1を指数(expoment)と呼ぶ。
- 仮数部をM、基数をB、指数をEとおくと、一般の正の数は、
と一意的に書ける。実数は、基数を決めておけば、仮数と指数で1通りの書き方しかない。
- B=16のとき、IBM方式という。これは古くから汎用コンピュータで使用されている。B=2のとき、IEEE方式(アイ・トリプル・イー)という。これは最近のPCで使用されている。
B=2で表示桁が小さくなるような気がするが、後日述べる方式(隠しビット)で弱点がうまくカバーされる。
実数の整数部分と小数部分で分けて考える。
整数部分については、10進整数を16進数に変換する要領で求めることができる。
小数部分はどうすればよいだろう。
たとえば、0.456の小数第1位の数「4」はどのようにしたら得られるであろうか?
答えは極めて単純で、「10倍して小数点以下を切り捨てる」である。
0.456を10倍して4.56。小数点以下を切り捨てれば「4」となる。
では、小数第2位の「5」はどうだろう。
小数点以下で切り捨てられた「0.56」を10倍して小数点以下を切り捨てれば、「5」は得られる。
以上をまとめると、
実数を16進数にする方法
① 実数を、整数部と小数以下部に分ける。
② 整数部は、前に述べた方法で16進数にする。
③ 小数以下部は、以下のようにして変換する。
まず、小数以下部の数を16倍する。このとき整数部に出た数が小数第1位の数である。
次に、また小数以下部を取り16倍する。このとき整数部に出た数が小数第2位の数である。
④ 以下、この操作を繰り返す。
【例題】いま、B=16とする。このとき、234.90625を16進数の浮動小数点表記に直せ。
(解答)まず、整数部分は、
234÷16=14...10
14÷16=0...14
であるから、整数部分は「

」となる。
小数部分は、0.90625であり、この部分は上の手順に従って変換する。すなわち、
0.90625×16=14.5
0.5×16=8.0
である。ゆえに、小数部分は

となる。
以上をあわせて、

となる。
ゆえに、

、

である。 ■
問題 B=16として、次の実数を16進数の浮動小数点表記に直せ。
(1).124.65625 (2).314.16 (3).0.1
(解答)
(1)

、
(2)

、
(3)

、

上付きドットは循環小数を表す。 ■
最終更新:2010年11月10日 18:44