为什么C饱和浮动而不是整数?

时间:2015-05-21 00:53:22

标签: c math

为什么C中的算术会使浮点数饱和而不是整数?它是底层处理器本身吗?

1 个答案:

答案 0 :(得分:3)

它没有。从6.5 / 5:

  

如果在评估表达式期间发生异常情况(即,如果结果未在数学上定义或未在其类型的可表示值范围内),则行为未定义。

因此,执行浮点计算会导致值大于FLT_MAX会导致未定义的行为。

当行为未定义时,任何事情都可能发生。您所看到的是您的编译器生成CPU或FPU指令,该指令适用于明确定义的总和,并不关心溢出。