Pav*_*kin 3 c floating-point double ieee-754
标准(IEEE 754 / C)是否保证以下代码断言永远不会失败?
int main()
{
for ( /* all possible float / double values */ )
{
v_neg1 = v * -1;
v_neg2 = -v;
assert( v_neg1 == v_neg2 );
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
更新。
all possible float / double values 排除 NaNs。不,这不一定是真的,因为NaN从不相互比较。
除此之外,鉴于符号位独立于指数和绝对有效数,我相信它适用于所有普通值。C 指 ISO/IEC 60559 / IEEE 754 附录;不幸的是,我自己没有标准。
#include <math.h>
#include <assert.h>
int main(void)
{
double v, v_neg1, v_neg2;
v = NAN;
v_neg1 = v * -1;
v_neg2 = -v;
assert( v_neg1 == v_neg2 );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |