【问题标题】:C floating point number 0x1.fp3C 浮点数 0x1.fp3
【发布时间】: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 来自哪里?

【问题讨论】:

标签: c gcc floating-point c99


【解决方案1】:

既然是十六进制格式,那么0.1表示1/160.2表示2/16,...0.a表示10/16,...,0.f表示15/16

【讨论】:

    猜你喜欢
    • 2012-12-26
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2010-12-19
    • 2017-11-16
    相关资源
    最近更新 更多