c++ - C++17十六进制浮点文字单精度后缀冲突?
问题描述
我正在查看浮点文字的 C++17 规范并发现了一个问题。您如何区分单精度的数字F
和后缀?F
例如,文字是0x1p0F
翻译成双精度32768.0L
还是单精度1.0F
?
规范说后缀是可选的,并且没有后缀表示双精度,因此,正如所写的那样,存在一定的歧义。
解决方案
十六进制浮点文字必须使用p
指数。指数是使用非十六进制数字定义的(一个十进制整数,表示要应用于 2 的指数)。因此,它不能包含“AF”字符。所以没有歧义。0x1p0F
指数为“0”,类型为float
。
推荐阅读
- css - 如何为不同的图像尺寸自动隐藏图像底部的固定尺寸
- android - 为什么我的 Flutter 应用在退出时会下拉到屏幕底部?
- python-3.x - 错误:只有整数、切片 (`:`)、省略号 (`...`)、numpy.newaxis (`None`) 和整数或布尔数组是有效索引
- azure - Azure 活动目录是否容易受到 DoS 或 DDOS 攻击
- javascript - 覆盖 Vue 的 mixin 方法
- django - 如何在单个 django 视图中组合两个 ModelForm
- ssl - 有没有办法在 Active Directory 中强制实施 SSL 或 TLS?
- r - R *** 捕获 segfault *** 地址 0x6,导致“内存未映射”
- php - PHP问题:无法通过关联数组打印行号白色循环
- swiftui - SwiftUI Navigationlink 或 Presentation Link 不起作用