整数除以零
int x = 5 / 0; // Undefined behavior
0
的划分在数学上是未定义的,因此有意义的是这是未定义的行为。
然而:
float x = 5.0f / 0.0f; // x is +infinity
大多数实现实现 IEEE-754,它定义浮点除以零以返回 NaN
(如果分子是 0.0f
),infinity
(如果分子是正数)或 -infinity
(如果分子是负数)。
int x = 5 / 0; // Undefined behavior
0
的划分在数学上是未定义的,因此有意义的是这是未定义的行为。
然而:
float x = 5.0f / 0.0f; // x is +infinity
大多数实现实现 IEEE-754,它定义浮点除以零以返回 NaN
(如果分子是 0.0f
),infinity
(如果分子是正数)或 -infinity
(如果分子是负数)。