タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

examとfloatに関するkiyo_hikoのブックマーク (1)

  • 桁落ちとは : JavaA2Z

    浮動小数点の計算において、正しい値を持つ桁が減ること。 指数部が大きく変わるような計算を行った場合に、それに伴い仮数部が表現していた桁が移動し、これまで存在していなかった桁に0が埋められ、それによりある桁以降に不正な値が現れることを「桁落ち」という。「アンダーフロー」とも言う。 たとえば「2.00000001 - 2.0 = 0.00000001」の計算を行う場合。 「2.00000001」が「0.00000001」へと変化した時、仮数部で表現する値は「2.00000001」から「1」に変化する。「0.00000001」の「0.0000000」の範囲は全て0のため仮数部ではなく指数部で「小数部8桁」という形で表現される。 仮数部では「2.0000000」の範囲がなくなったため、仮数部の計算結果はビット的に左にずれる。ずれた結果、空いた右側のビットには0が埋められる。 だが、この0は正しい値

    kiyo_hiko
    kiyo_hiko 2010/12/19
    正規化によって、「未知の不正な値」が0で隠蔽されてしまうのが問題なのか。この辺の理屈とか全然忘れてた。
  • 1