floating-point - IEEE 754 恒等律:字面意义和改变价值的优化
问题描述
IEEE 754-2008 标准说,对于像这样的表达式0 + x
,1 * x
可以应用身份属性(第 10.4 节):
当 x 不是信号 NaN 并且结果具有与 x 相同的指数时,应用恒等属性 1 × x。
我想知道“结果与x具有相同的指数”是什么意思?
解决方案
我认为它们的意思是二进制表示的指数字段。
即使对于 QNaN,乘以 1 也不会改变指数,即使有效数字(NaN 有效负载)发生变化也是如此。所有 NaN 都具有相同的全一指数编码。(无穷大是有效数=0的全1指数;该指数值的整个其余编码空间都花在了基本上没有人使用的NaN有效负载上。)
对于任何非 NaN,当您乘以 1 时,指数字段不会改变,这一点是非常真实的。有效位或符号位也不会改变。(IIRC,1.0 * -0.0 = -0.0
)。
推荐阅读
- mysql - 提高一对多连接的性能
- bash - 如何在 Bash 中将带有空格的数组作为函数参数传递
- sql - 如何限制选择每台设备的最后几天结果
- c - C如何在无符号整数指针之间进行异或
- cakephp - 使用 FormHelper::file 时 SecurityComponent 上的 CSRF 错误
- tomcat - Ctrl-c 不使用 Git Bash 停止 Tomcat
- c# - LINQ查询连接表的多个orderby
- android - 为 CognitoCachingCredentialsProvider 指定用户名/密码
- javascript - 打字稿错误 - 类型“字符串 []”不能用作索引类型
- java - 使用 javax.xml.stream.XMLStreamReader 时如何启用非 IANA 编码