私は、C11またはC99のいずれかがこの点で提供することを保証するものがあるかどうか疑問に思っています。
経験的に、浮動小数点値を(精度に関係なく)符号付き整数に変換すると、その符号付き整数範囲で浮動小数点値を表現できない場合でも、イベントが発生した場合でも、「適切な」飽和状態になるようです。浮動小数点値がプラスまたはマイナスの無限大であること(ただし、NaNの場合はわかりません)。
ここには微妙な問題があります。それは、丸め動作の違いが飽和を引き起こす場合もあれば、そうでない場合もあります。特に、飽和境界の端にいる場合はそうです。私はそれについて心配していません。私の質問は、浮動小数点機構が出力する必要のある整数(プラットフォームに依存する)を決定した後、その整数がターゲットの符号付き整数の範囲外にある場合(プラットフォームに依存しない)かどうかです。 )、仕様によって飽和が保証されているかどうか。
私のデフォルトの理解は、私が見ているのは単に基盤となるハードウェアの便宜であり、署名されたオーバーフローが定義されていないため、そのような動作は保証されないということです。私は署名されたオーバーフローを嫌い、それを避けようとしているので、私が間違っていることを願っています。そうです、符号なし整数への変換の場合にも興味があります。
私がそれにいる間、負の0はどうですか?この値は、ある意味では負のイプシロンと考えることができますが、通常は-1に丸められますが、整数ゼロに変換されることが保証されていますか?