当前位置: C语言 -- 标准库 -- <math.h> -- ilogbd128

ilogbd128函数


概要:
#include <math.h>
#ifdef __STDC_IEC_60559_DFP__
    int ilogbd128(_Decimal128 x);
#endif 

描述:

该函数提取参数x的指数,并以有符号的int类型形式返回。

该函数以10作为对数的底数,返回|x|的对数的整数部分,即数学表达式log10(|x|)的整数部分。

如果参数x为0,函数将返回FP_ILOGB0;如果参数x为无穷大,函数将返回INT_MAX;如果参数x为非数值,函数将返回FP_ILOGBNAN;否则调用ilogbd128函数相当于调用logbd128函数,并将返回值转换为int类型。

如果参数x为0、无穷大或者非数值,将可能发生域错误或者范围错误(range error)。

如果函数运算结果超出了int类型所能表示的范围,结果是不明确的,并且可能发生域错误或者范围错误。


参数:
_Decimal128 x

参数为_Decimal128类型的浮点数。


返回值:

函数将参数x的指数以有符号的int类型值返回。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
/*函数ilogbd128范例*/

#include <math.h>
#include <stdio.h>

int main(void)
{
    #if __STDC_VERSION_MATH_H__ >= 202311L && defined(__STDC_IEC_60559_DFP__)
        _Decimal128 x = 1000.0dl;
        int y;

        y = ilogbd128(x);
        printf("The exponent of %.6DDf is %d.\n", x, y);
    #else
        puts("The implementation does not support ilogbd128 function.");
    #endif

    return 0;
}

输出:

The implementation does not support ilogbd128 function.


相关内容:
ilogb 提取double类型参数的指数的函数。
ilogbl 提取long double类型参数的指数的函数。
ilogbf 提取float类型参数的指数的函数。
ilogbd32 提取_Decimal32类型参数的指数的函数。
ilogbd64 提取_Decimal64类型参数的指数的函数。


主要参考资料:

1、ISO/IEC 9899:2024