-1

こんにちはは、1つの有効な浮動小数点数を持つ終わる可能性ビットの32ビット列を再解釈する場合:符号なし整数範囲[uint(a1)uint(a2)]のビット列を浮動小数点範囲[float(a1)float(a2)]に再解釈することは可能ですか?

UINT:1101004800、フロート:20.000000

は、今私は、静的解析ツールで働いていると言います単一の値ではなく値の範囲に対する操作を定義します。

私が考えているこのような操作の1つは、符号なしの値の32ビットのビットストリング値をフロートに再解釈することです。

float [float(a1)float(a2)]に変換されたときの符号なし整数の範囲は[uint(a1)uint(a2)]ですか?

浮動小数点数にはNaN、無限大の特殊な値があることは知っています。しかし、そうでなければこのレンジ変換は保持されますか?

int: 1101004800, float: 20.000000 
int: 1101004801, float: 20.000002 
int: 1101004802, float: 20.000004 
int: 1101004803, float: 20.000006 
int: 1101004804, float: 20.000008 
int: 1101004805, float: 20.000010 
int: 1101004806, float: 20.000011 
int: 1101004807, float: 20.000013 
int: 1101004808, float: 20.000015 
int: 1101004809, float: 20.000017 

私は浮動小数点数を比較すると、整数としてそれらを解釈する場合でも、正しくソートすることができ、ビット列」というhere読んだ:

次の番号は、それがそうであることをお勧め。 "

答えて

1

これはfmax表現までは動作しますが、これ以上は動作しません(浮動小数点表現は種類が表現されているため、負の場合は順序が逆になります)。

0000 0000 -> 0.0 
... 
7F7F FFFF -> fmax 
7F80 0000 -> +Inf 
7F80 0001 - 7FFF FFFF -> NaN 
8000 0000 -> -0.0 
... 
FF7F FFFF -> -fmax 
FF80 0000 -> -Inf 
FF80 0001 - FFFF FFFF -> NaN 

しかし、意図は何ですか?整数では実行できない範囲でどのような操作を実行しますか?

関連する問題