今天聊一下基础知识 | 每日一练(131)

读者:为什么 C 不提供乘幂的运算符?

小林:因为提供乘幂指令的处理器非常少。有一个 pow() 标准函数, 原型说明在<math.h>。而对于小的正整数指数, 直接用乘法一般会更有效。

读者:为什么我机器上的 <math.h> 没有预定义常数PI?

小林:这个常数不包含在标准内, 它应该是定义准确到机器精度的 π 值。如果你需要用到 π, 你需要自己定义,或者用 4*atan(1.0) 或 acos(-1.0) 来计算出来。

读者:怎样测试 IEEE NaN 以及其它特殊值?

小林:许多实现高质量 IEEE 浮点的系统会提供简洁的工具去处理这些特殊值。例如, 在 <math.h> 以非标准扩展功能, 或可能以 <ieee.h> 或 <nan.h> 提供预定义常数, 及象 isnan() 这类的函数。

正文完