【问题标题】:C++17 Hexidecimal floating point literal single precision suffix conflict?C ++ 17十六进制浮点文字单精度后缀冲突?
【发布时间】:2018-10-13 15:44:37
【问题描述】:

我正在查看浮点文字的 C++17 规范并发现了一个问题。单精度如何区分数字F和后缀F

例如,文字 0x1p0F 是转换为双精度 32768.0L 还是单精度 1.0F

规范说后缀是可选的,没有后缀表示双精度,因此,正如所写,存在一定的歧义。

【问题讨论】:

    标签: c++ floating-point hex c++17 literals


    【解决方案1】:

    十六进制浮点文字必须使用p 指数。指数是使用非十六进制数字定义的(一个十进制整数,表示要应用于 2 的指数)。因此,它不能包含“A-F”字符。所以没有歧义。 0x1p0F 的指数为“0”,类型为 float

    【讨论】:

    • 啊,没有抓住指数是十进制的部分。绝对令人困惑。
    猜你喜欢
    • 1970-01-01
    • 2014-02-07
    • 2013-12-16
    • 2016-12-14
    • 2012-08-22
    • 2014-10-31
    • 2016-08-17
    • 2021-05-04
    • 2020-11-12
    相关资源
    最近更新 更多