前回(2015/11/27)の内容 「数」の表現 内部的には bit 列 ( = byte 列 = メモリセル並び ) 基本は単なるコーディング(対応関係) : その意味では何でもよいのだが.. 「計算回路」が単純になるように、上手く選ばれている 整数値と実数値の表現 整数値の表現 : 基本は 2 進法 (非負の数) 負の数の表現 : 2 の補数表現 (計算回路が共有できる) 実数値の表現 浮動小数点数 : 仮数 x 2^(指数) : 小数点の位置が移動(浮動)する IEEE 754 : double 型 は 64bit = 1:符号+11:指数部+52(+1):仮数部 計算上の注意 表現できる範囲が有限(共通) : 計算の結果、表現できる範囲を越える可能性がある オーバーフロー(アンダーフロー) : 計算の結果、表現範囲を越えた 表現できる種類が有限(実数) : 正確に表現できない場合がある 表現誤差 : そもそも正確に表現できない可能性がある 浮動小数点数固有の問題 和差の計算で、小数点の位置を合せる結果、有効数字の長さが減る (桁落) 近い数の差を計算すると頭の部分が 0 になり、有効数字の長さが減る 数学的には同じ計算式でも、計算順序によって異る結果になる(誤差が変化) (計算機上の)誤差が小くなるように(数学的な)式変形を行う必要がある