C语言中的浮点数表示法

Floating point number notation in C language

const float Q31_MAX_F = 0x0.FFFFFFp0F; 中的 p 是什么? 0xa.bpc?

中的abc一般是什么

此表达式是否明确定义存储在 float32_t 中的二进制文件?

我在网上搜索过,但没有找到任何东西。

0x0.FFFFFFp0F 末尾的 F 很有趣。


What is p in const float Q31_MAX_F = 0x0.FFFFFFp0F;?

p是一些浮点数的十六进制*2十进制的2次方的指数指标。

它是 0x0.FFFFFF * p2 的十进制次方,而不是某些十六进制指数 0F.

0x0.FFFFFFp0F 末尾的

F(更常见的是 f)表示常量是 float 而不是 doubleF 不是指数的一部分。 0x0.FFFFFF*pow(2,0)正好 0.999999940395355224609375


Generally what is a, b and c in 0xa.bpc?

0x0.FFFFFFp0Fa为0,b为十六进制小数0.FFFFFF16777215/16,777,216 或 0.999999940395355224609375 并且 c 为 0.


Does this expression explicitly define binary stored in float32_t?

带有 Ff 后缀的 0x0.FFFFFFp0Ffloat.

类型的常量

float32_t 不是标准的 C 类型。