浮動小数点形式の隠しビットを表す必要がない理由を説明してください。
ヘルプ?精度を高めるために隠しビットが存在することは知っていますが、それを表す必要がないのはなぜですか?
浮動小数点形式の隠しビットを表す必要がない理由を説明してください。
ヘルプ?精度を高めるために隠しビットが存在することは知っていますが、それを表す必要がないのはなぜですか?
仮数部 H.xxxxxxx の前にある隠しビットを意味する場合、H=hidden の場合、答えは、指数 >0 の場合は暗黙的に 1 であり、指数 ==0 の場合はゼロです。
指数から計算できるビットを省略すると、仮数部の精度が 1 ビット高くなります。
常に 1 であるため、表現しません。2 進数を正規化する場合にのみ、隠しビットを取得します。正規化の意味は、次の形式で数値を記述することです。
1.xxxx x 2^x (例: 110.11 は 1.1011x2^2 になります)
最初のビットは常に 1 になるので、それを表す必要はありません
@Akiの答えは正しいです。暗黙のビットは常に 1 ではありません。
0.0、-0.0、および非正規数 (漸進的なアンダーフロー) の場合、暗黙のビットがあれば、そのビットは 0 になります
。これらの数値はすべて、バイアス指数がゼロの数値です。
非有限浮動小数点 (+inf -inf NaN) は、暗黙のビットの概念をまったく必要としません。
ただし、そのようなビットを追加しても害はありません
。これらの数値はすべて、バイアスされた指数がすべて 1 に設定されている数値です。
他のすべてのフロートでは、暗黙のビットは 1 になります。
技術的には、FPU 回路にロジックを追加して上記のルールから再構築するため、暗黙のビットを格納する必要はないというのが答えです ;)。
たとえば、暗黙のビットは、バイアスされた指数のすべてのビットを OR することによって取得できるため、結局のところそれほど高価ではありません。