情報処理工学基礎

15/01/30
情報処理工学基礎
第14回
固定小数点表現の特徴
長所) わかりやすく処理も速い
短所) ケタ数がムダに必要となることがある
例えば,
25000000000 (すごく大きい数)
0.0000000086 (すごく小さい数)
などを表現するには多くのビット数が必要に・・・
1
15/01/30
浮動小数点表現と指数表記
浮動小数点表現
限られたケタ数で大きな数,小さな数を表現で
きる
そのために使うのが・・・
指数表記
指数表記
もとの数の小数点の位置を移動させ,移動させ
た分を「基数のベキ乗」とした形のかけ算にして
つける
(符号)(仮数)×(基数)(指数)
2
15/01/30
指数表記
0.000037 = 0.037 × = 3.7 × ±(仮数)×(基数)(指数)
可変部分
浮動小数点表現
浮動小数点表現では,これらの可変部分の値
をビットに割り当ててビット列を表現する
これにより,すごく大きい数,小さい数を表現で
きる!!
3
15/01/30
浮動小数点数の正規化
① 0.87654×10-6
同じ値
② 0.087654×10-5
仮数部を5ケタの枠にはめこんで保管する場合
に,もとの値を保持できるのはどちらでしょうか?
浮動小数点数の正規化
仮数と指数の組合せは何通りもあり,いずれも
正しい表現
限られたビット数でより多くのケタ数を保持する
ためには,その組合せは限られてくる
4
15/01/30
浮動小数点数の正規化
有効なケタ数が多くとれるように(仮数部の最
上位が0でないように)小数点の位置を調整
正規化
浮動小数点数の正規化
0.0001101 × 2-2 を(仮数部の最上位ビット
が1になるように)正規化すると・・・
0. × 2( ) 5
15/01/30
浮動小数点表現の例(32ビット)
S
E
符号部 指数部
M
仮数部
符号部(1ビット) 0:正 1:負
指数部(7ビット) 負の数は2の補数表現で
仮数部(24ビット) 絶対値表現
浮動小数点表現の例(32ビット)
例) 正規化した 0.101×23を浮動小数点表現で
表すと・・・
S
E
符号部 指数部
M
仮数部
6
15/01/30
浮動小数点表現の例(32ビット)
例) 正規化した 0.101×23を浮動小数点表現で
表すと・・・
S
E
符号部 指数部
M
仮数部
00000011101000000000000000000000
浮動小数点表現の例(32ビット)
演習) 先ほど正規化した 0.1101×2-5を浮動小
数点表現で表すと・・・
S
E
符号部 指数部
M
仮数部
7
15/01/30
浮動小数点表現の例(32ビット)
10進数の小数を浮動小数点表現にする場合・・・
①  2進小数に変換する
②  0.M×2Eの形に正規化する(Mは先頭ビットが1に
なるようにする)
③  S,E,Mの値を抜き出し,指定された形式に当て
はめる
浮動小数点表現の例(16ビット)
演習) 10進数の0.125を16ビットの浮動小数点
表示してみよう.
S
E
符号部 指数部
(1)
(4)
M
仮数部
(11)
8
15/01/30
誤差
コンピュータ内部で表現できるのは有限のケタ数
実際の数値とコンピュータ内部で表現できる数値
との間にずれが生じる
誤差
けたあふれ(誤差)
演算結果がコンピュータの扱える最大値または最
小値を超えることによって生じる誤差
最大値を超えた場合 → オーバーフロー
最小値を超えた場合 → アンダーフロー
9
15/01/30
丸め(誤差)
表現できるケタ数を超えた場合に,最小ケタより
小さい部分を切り上げ,切り捨て,四捨五入するこ
とにより生じる誤差
打ち切り誤差
計算処理を完了を待たずに途中で打ち切ることに
よって生じる誤差(円周率や平方根の計算など)
10
15/01/30
けた落ち
絶対値がほぼ等しい数値同士の差を求めたとき
に,有効なケタ数が大きく減ることによって生じる誤
差
情報落ち
絶対値の大きな値と絶対値の小さな値とで加減
算を行ったとき,絶対値の小さな値が計算結果に
反映されないことで生じる誤差
11