【发布时间】:2015-06-08 04:48:20
【问题描述】:
来自一篇文章:
“GNU CC 不仅可以识别以通常十进制表示的浮点数,例如 1.55e1,而且还可以识别以十六进制格式编写的数字,例如 0x1.fp3。格式化 0x 十六进制引入符和 p 或 P 指数字段是强制性的。指数是一个十进制数,表示有效数字部分将乘以 2 的幂。因此 0x1.f 是 1 15/16,p3乘以8,0x1.fp3的值与1.55e1相同。"
似乎说 0x1.fp3 被评估为 = (1 + 15/16 ) * 2^3
15/16 来自哪里?
【问题讨论】:
-
十六进制浮点格式的在线参考是exploringbinary.com/hexadecimal-floating-point-constants
-
@RudyVelthuis 已更正
标签: c gcc floating-point c99