在C中,何時(shí)±0.0支持-0.0或+0.0分配給double通常不會(huì)產(chǎn)生算術(shù)差異。盡管它們具有不同的位模式,但它們?cè)谒阈g(shù)上的比較是相等的。double zp = +0.0;double zn = -0.0;printf("0 == memcmp %d\n", 0 == memcmp(&zn, &zp, sizeof zp));// --> 0 == memcmp 0printf("== %d\n", zn == zp); // --> == 1受到@Pascal Cuoq注釋的啟發(fā),我正在尋找標(biāo)準(zhǔn)C中的其他一些函數(shù),這些函數(shù)提供算術(shù)上不同的結(jié)果。注意:許多函數(shù)(例如sin())+0.0從f(+0.0)和-0.0從中返回f(-0.0)。但是這些沒(méi)有提供不同的算術(shù)結(jié)果。同樣,這2個(gè)結(jié)果不應(yīng)該同時(shí)為NaN。
3 回答

翻過(guò)高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
IEEE 754-2008函數(shù)rsqrt
(將在將來(lái)的ISO C標(biāo)準(zhǔn)中使用)在±0上返回±∞,這非常令人驚訝。并tgamma
在±0上返回±∞。使用MPFR,mpfr_digamma
在±0上返回與±∞相反的值。
- 3 回答
- 0 關(guān)注
- 869 瀏覽
添加回答
舉報(bào)
0/150
提交
取消