浮動小数点メモリ構造

601 ワード

最近暇で、いくつかの以前の基礎書を読み始めて、以前の知識点を振り返って、ここで「c++反アセンブリと逆分析技術の秘密」のいくつかの総括を分かち合います.
浮動小数点メモリ構造
floatタイプは整形タイプに変換すると、ゼロに整列し、精度が失われます.
浮動小数点数符号化方式:符号、指数、末尾数
Float:4バイト(32ビット)、1ビット記号、8ビット指数、残りの末尾数
double:8バイト(64ビット)、1ビットシンボル、11ビット指数、残りの末尾数
指数計算+127理由:IEEE符号化方式では、最上位は符号を表すため、指数域が0111111未満の場合は負であり、逆に正数であるため、0111111は0を表す
浮動小数点数と0を比較する方法:区間比較を行い、
//  fFloat    0
Float fTemp = 0.0001f;

If( fFloat >= -fTemp && fFloat <= fTemp )

{

    //fTemp  0

}

 
浮動小数点数判定0を区間比較する原因:部分小数をバイナリ数に変換すると無限値が得られ、端数の長さに応じて余分な部分を捨てるため、一定の誤差があるため、この方法を採用する