第8章 浮点数据处理函数库:float.h 在程序中常常需要进行浮点运算,为此C语言提供了浮点数据处理函数库,在头文件float.h中定义。该函数库包括清除状态字函数、设置控制字函数、重置浮点运算系统函数等。 8.1 _clear87()——清除状态字函数 _clear87()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\08\01

    _clear87()函数用于获取并清除状态字。

    语法

    unsigned int _clear87();

    _clear87()函数没有参数。

    _clear87()函数返回原来的浮点状态。

    示例

    本示例演示使用_clear87()函数清除浮点状态字中的异常标志。其具体代码如下:

    img275

    运行结果如图8.1所示。

    img276

    图8.1 使用_clear87()函数获取并清除状态字 8.2 _control87()——设置控制字函数 _control87()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\08\02

    _control87()函数用于获取和设置浮点控制字。

    语法

    unsigned int _control87(unsigned int new, unsigned int mask);

    _control87()函数的语法参数说明如下:

    参数new为新的控制字位值。

    参数mask为设置新控制字位的掩码。

    _control87()函数返回浮点控制状态。

    示例

    本示例演示使用_control87()函数实现在不同控制字下计算两个双精度数的乘积。其具体代码如下:

    img277

    运行结果如图8.2所示。

    img278

    图8.2 使用_control87()函数获取和设置浮点控制字 8.3 _status87()——获取浮点处理器状态值函数 _status87()函数

    实用程度:★★★★☆

    实例位置:配套资源\SL\08\03

    _status87()函数用于获取浮点状态值。

    语法

    unsigned int _status87(void);

    _status87()函数没有参数。

    _status87()函数返回浮点状态值。

    示例

    本示例演示使用_status87()函数获取出现错误前后的浮点状态值。其具体代码如下:

    img279

    运行结果如图8.3所示。

    img280

    图8.3 使用_status87()函数获取浮点处理器状态值