この質問は、非常に興味深い現象を示しています。非正規化されたフロートは、コードを 1 桁以上遅くします。
動作は、受け入れられた回答でよく説明されています。ただし、現在153件の賛成票があり、満足のいく答えが見つからないコメントが1つあります。
この場合、コンパイラが +/- 0 をドロップしないのはなぜですか?!? – マイケル・ドーガン
補足: 0f は正確に表現可能である必要がある (さらに、バイナリ表現はすべてゼロでなければならない) という印象がありますが、c11 標準ではそのような主張を見つけることができません。これを証明する引用、またはこの主張を反証する議論は大歓迎です。とにかく、マイケルの質問がここでの主な質問です。
実装では、ゼロおよび浮動小数点数ではない値 (無限大や NaN など) に符号を付けるか、符号なしのままにすることができます。