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
© Copyright 2024 ExpyDoc