0x0.3p10代表什么值?

上面的语句中的p是什么意思?

最佳答案

0x0.3p10是C99中引入的十六进制浮点文字的示例。 p将基数与指数分开。
0x0.3位称为有效数部分(带可选分数的整个部分),指数是其乘以2的幂。

该特定值以十六进制的0.33 * 16(3/16)乘以2(1024)得出,得出3 * 1024 / 16192

以下程序确认了这一点:

#include <stdio.h>
int main (void) {
    double d = 0x0.3p10;
    printf ("%.f\n", d);
    return 0;
}

C99的6.4.4.2节包含所有详细信息:

10-07 19:45
查看更多