IEEE 754 浮点除法的可逆性

2024-02-22

IEEE 754 浮点除法的可逆性是什么?我的意思是标准是否保证如果double y = 1.0 / x then x == 1.0 / y, i.e. x可以一点一点精确还原吗?

时的情况y is infinity or NaN都是明显的例外。


是的,有 IEEE 754 双精度 (*) 值x就是这样x != 1.0 / (1.0 / x).

使用此属性可以很容易地手动构建一个正常值的示例:所写的那个0x1.fffffffffffffp0 in C99 浮点值的十六进制表示法 http://www.exploringbinary.com/hexadecimal-floating-point-constants/是这样的1.0 / (1.0 / 0x1.fffffffffffffp0) == 0x1.ffffffffffffep0。很自然地期待0x1.fffffffffffffp0成为反例,因为1.0 / 0x1.fffffffffffffp0落在二进制的开头,其中浮点数密度较小,因此在最里面的除法上必须发生较大的相对误差。更确切地说,1.0 / 0x1.fffffffffffffp0刚好高于两者之间的中点0.5及其双精度后继者,因此1.0 / 0x1.fffffffffffffp0向上舍入为0.5的后继,相对误差较大。

以十进制表示%.16e格式,0x1.fffffffffffffp0 is 1.9999999999999998e+00 and 0x1.ffffffffffffep0 is 1.9999999999999996e+00.

(*) 对于任何 IEEE 754 格式,反函数没有理由具有问题中的属性

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IEEE 754 浮点除法的可逆性 的相关文章

随机推荐

  • 如何在通用标头中 typedef 实现定义的结构?

    我有一个 C 项目 旨在可移植到各种 PC 和嵌入式 平台 应用程序代码将使用具有特定于平台的实现的各种调用 但共享通用 通用 API 以帮助实现可移植性 我正在尝试确定声明函数原型和结构的最合适方法 到目前为止 这是我想到的 main c
  • 关注 MongoDB 变更流

    我们希望我们的 Go 应用程序能够侦听集合上的数据更改 因此 在谷歌搜索解决方案时 我们遇到了 MongoDB改变流 https docs mongodb com v3 6 changeStreams 该链接还展示了 Python Java
  • 如何创建滑动布局,如 Android 主菜单?

    我需要创建一个具有 4 个视图的应用程序 我需要通过触摸并向左或向右移动 无按钮 从一个视图传递到另一个视图 我想要的效果与当您从一个页面传递到另一个页面时在 android 主菜单中导航时看到的效果相同 我已经测试了 ViewFlippe
  • 对瞬态变量注解@Basic

    我有一个 POJO 类 其中包括 持久特性 瞬态特性 在编写 HQL 时 我考虑了两者 持久属性和瞬态属性 IE HQL 类似select persistent properties transient prop from Pojo cla
  • JavaScript 中仅允许数字[重复]

    这个问题在这里已经有答案了 可能的重复 HTML 文本输入仅允许数字输入 https stackoverflow com questions 469357 html text input allow only numeric input 我
  • MySQL Workbench 无法在 Windows 上打开

    我已经下载了 Workbench 的免安装便携式版本 当我运行 exe 文件 在 Windows XP 上 时 没有任何反应 它需要运行一些 MySQL 吗 我认为它是独立的 对吗 我有 MySQL 的 XAMPP 有什么依赖性等吗 您需要
  • Python:tkinter 上的 Z 索引

    是否存在一种方法来指定 Tkinter 画布元素的深度 例如 HTML 的 z index 目前 我发现让元素按照我想要的方式重叠的唯一方法是按特定顺序创建它 问题是某些元素必须在其他元素之后创建 但它们也应该具有较低的 z index 先
  • 重新安装节点后:“找不到模块‘internal/util/types’”

    因此 几个月前我从计算机中删除了节点 我认为主要是 今天我重新安装了它 Node 工作正常 但是当我尝试测试 npm 时 我收到以下消息 npm module js 549 throw err Error Cannot find modul
  • 在 Java 中操作和存储日期的最佳实践是什么? [复制]

    这个问题在这里已经有答案了 操作和存储日期的最佳实践是什么 例如在企业 Java 应用程序中使用 GregorianCalendar 寻求反馈 我会将任何好的答案整合为其他人可以使用的最佳实践 最佳实践通常是准确的NOT考虑重日期对象 但存
  • Spring Security:多个 HTTP 配置不起作用

    我正在尝试使用 Spring Security 并且有一个用例 我希望不同的登录页面和不同的 URL 集得到保护 这是我的配置 Configuration Order 1 public static class ProviderSecuri
  • 如何解决 CALayer 支持的文本中文本渲染不佳的问题

    我有一些可变文本NSTextField呈现在CALayer背景视图 作为一个CALayer不支持其上任何文本的文本渲染的子像素别名 该文本看起来很垃圾 一些谷歌搜索揭示了其原因 并且文本必须渲染到不透明背景上才能启用 SPA 在这种情况下
  • 在 PHP 中发送 HTTP 响应代码的最佳方法

    通过阅读 php 规范和 Stack Overflow 上的其他问题 我可以看到从 PHP 发送 HTTP 响应代码的三种方法 header HTTP 1 0 404 Not Found A B C header false 404 C D
  • JavaScript 有时在 android 的 webview 中不起作用

    我在我的应用程序中放置了一个 webview 来访问包含一些 JavaScript 函数的网页 我的目的是当用户单击网页中的链接时 它将在应用程序中启动一个新的活动 我写了 webSettings setJavaScriptEnabled
  • 如何在实际示例中使用 javascript 模块模式?

    我正在尝试理解 JavaScript 模块模式 我已经看过它应该是什么样子的示例 但我不明白如何使用它 例如 这里发生了一些事情 input share on click function loading html img class re
  • 无论大小如何,如何使项目保持在屏幕中央? [复制]

    这个问题在这里已经有答案了 我试图使这些框在屏幕上水平居中 无论视口的面积是多少 但我似乎无法做到这一点 如果有人可以提供帮助 我将不胜感激 div class jobFields div class field 1 div div cla
  • AngularJS - 触发控制器时获取先前的路线

    Angular 的内部结构再次让我困惑 我需要在加载特定视图时确定之前的路线 我就是这样做的 app controller TrashCtrl function scope rootScope rootScope on locationCh
  • 使用 Winsock 通过单个 UDP 服务器处理 10 个客户端

    我已经使用 UDP 套接字建立了一个服务器 客户端应用程序 但我的服务器无法一次处理多个客户端 现在我想修改我的应用程序 让 10 个客户端分别运行在不同的计算机上 而我的服务器运行在单独的计算机上 我希望我的服务器能够与 10 个不同机器
  • jquery.ui.touch.punch.js 脚本阻止触摸设备上的输入功能

    我花了一点时间 但我发现我无法单击我的输入 因为我使用 touch punch 脚本在触摸设备上启用 jquery UI 拖动功能 熟悉这个脚本的人知道为什么会这样吗 该表单实际上位于父对象的树中 有谁知道我可以覆盖或强制选择的方法吗 我现
  • 如何通过URL获取RouteData?

    我需要得到RoutData通过 ASP NET MVC 应用程序中给定的 URL 字符串 我找到了我需要嘲笑的方式HttpContextBase基于我的 URL 字符串 然后将其传递给RouteTable Routes GetRouteDa
  • IEEE 754 浮点除法的可逆性

    IEEE 754 浮点除法的可逆性是什么 我的意思是标准是否保证如果double y 1 0 x then x 1 0 y i e x可以一点一点精确还原吗 时的情况y is infinity or NaN都是明显的例外 是的 有 IEEE