use*_*859 5 c algorithm floating-point double
我想在目标板上测试以下内容:
有什么方法可以用简单的C程序测试它.
没有简单的测试.
今天绝大多数系统都使用IEEE-754格式进行浮点运算.但是,大多数C实现并不完全符合IEEE 754(与IEC 60559相同),并且不设置预处理器标识符__STDC_IEC_559__.在没有此标识符的情况下,确定C实现是否符合IEEE 754的唯一方法是以下一种或组合:
在许多C实现和软件应用程序中,可以忽略或解决与IEEE 754的偏差:您可以编写代码,就像IEEE 754正在使用中一样,而且很多代码将在很大程度上起作用.然而,有许多事情可能使一个毫无戒心的程序员绊倒; 即使遵守完整规范,写入完全正确的浮点代码也很困难.
常见偏差包括:
double可以long double精确地计算使用值的表达式.sqrt 在每种情况下都不会返回正确舍入的值.3.1415926535897932384626433在源代码中)和二进制浮点格式(例如,通用double格式,IEEE-754 64位二进制)之间的转换并不总是正确地舍入.cos,log,等等)很少支持其它舍入模式.