IEEE754中是否存在关于加法的中性元素

时间:2013-04-29 20:42:42

标签: c floating-point double ieee-754 low-level

请考虑以下代码段

double id = ?;
double res;
long unsigned *res_u = (long unsigned*)&res;

long unsigned i;
for (i = 0; i < (long unsigned)-1; i++){
    double *d1 = (double*)&i;
    res = id + *d1;
    assert(*res_u == i);
}

我的问题id是否有值,以便断言适用于所有i?换句话说,对于我们中间的数学家来说,有两倍是加法的中性元素吗?

1 个答案:

答案 0 :(得分:7)

-0.矛盾的是浮点值对于加法而言是中性的。

+0.差不多,但-0. + (+0.)+0.

除此之外,+inf + (-0.)使+inf-inf + (-0.)成为-infNaN + (-0.)成为NaN