IEEE 754:为什么谓词 == 和 != 没有发出信号?

2024-03-03

注意:了解IEEE 754。请耐心等待。

IEEE 754-2008:

表 5.2 列出了五个无序信号谓词及其否定,当关系无序时,它们会导致无效操作异常。该无效操作异常可以防止使用以下代码编写的程序中出现意外的安静 NaN: 标准谓词 {=, >} 及其否定,而不考虑安静 NaN 操作数的可能性。

问题:为什么== and !=谓词不在{}列表?使用谓词编写的程序中可能会出现意外的安静 NaN== and !=以及。


问题:为什么 == 和 != 谓词不在 {} 列表中?

因为它是传统信号谓词的列表,并且== and !=运营传统上是安静的。这{}list 不是括号——它是所描述的操作的枚举。该规范确实定义了信令equal and notEqual谓词,这些在表 5.2 中列出,但它们根本不是引用句子所讨论的内容。该规范还定义了安静版本Greater, etc。 (列于表5.3);这些当然也不是引用的句子所说的。

All信令版本,包括compareSignalingEqual() and compareSignalingNotEqual(), 拥有它们的属性

供程序使用not写成考虑 考虑 NaN 操作数的可能性

(表 5.2 介绍;原文强调)。

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

IEEE 754:为什么谓词 == 和 != 没有发出信号? 的相关文章

  • 关于 NaN 运算的问题

    我的 SSE FPU 生成以下 NaN 当我执行任何基本的对偶运算 如 ADDSD SUBSD MULSD 或 DIVSD 并且两个操作数之一为 NaN 时 结果具有 NaN 操作数的符号 并且结果尾数的低 51 位将加载NaN 操作数尾数
  • IEEE“双精度”的精确文本表示

    我需要以人类可读的文本形式表示 IEEE 754 1985 双 64 位 浮点数 条件是文本形式可以解析回exactly相同的 按位 数字 如果不打印原始字节 这是否可能 实用 如果是 那么执行此操作的代码将不胜感激 最佳选择 使用 C99
  • Java 中的 0.0 和 -0.0 (IEEE 754)

    Java 与 IEEE 754 完全兼容 对吗 但我对java如何决定浮点加法和减法的符号感到困惑 这是我的测试结果 double a 1 5 double b 0 0 double c 0 0 System out println b a
  • 返回浮点类型是否完全符合 IEEE-754 的函数?

    我想写一个函数来检查float double or long double完全符合 IEEE 754 格式 我是说 float IEEE 754 二进制32 双 IEEE 754 二进制 64 长双 IEEE 754 二进制 128 我以为
  • 为什么 IEEE754 标准中除以零会产生无限值?

    我只是好奇 为什么在IEEE 754任何非零浮点数除以零都会得到无限值 从数学角度来看这是无稽之谈 所以我认为此操作的正确结果是 NaN 如果 x 是实数 则当 x 0 时 函数 f x 1 x 没有定义 例如 函数 sqrt 未定义为任何
  • 在节点中将 ieee754 转换为十进制

    我在节点中有一个缓冲区
  • 将 IEEE 浮点十六进制转换为十进制?

    如果我有一个 IEEE 浮点十六进制 42F6E979 如何将其转换为十进制 我相信十进制表示是 123 456001 大多数 汇编语言实际上并没有非常严格地强制执行类型 因此您只需使用该值初始化一个位置 然后将其视为 使用浮点数 最简单的
  • 最小的 i 且 1/i == 1/(i+1)?

    Someone reverse sorted by 1 i instead of the usual i and it made me wonder What is the smallest positive integer case wh
  • 如何计算float类型的精度以及它是否有意义?

    我在理解浮点类型的精度时遇到问题 的msdnwrites https learn microsoft com en us dotnet csharp language reference builtin types floating poi
  • 数字 0 在二进制浮点数格式中是什么样子?

    浮点格式 IEEE 有 32 位 第 1 位用于符号 之后 8 位用于有偏差指数 最后 23 位用于尾数 在这个尾数中 第一个 1 始终是 1 始终隐藏 这引出了我的问题 数字 0 在这种格式中是什么样子的 因为如果指数为 0 则该数字将始
  • 假设浮点数在 C 中使用 IEEE754 浮点数表示是否安全?

    浮点是在 C 中定义的实现 因此没有任何保证 我们的代码需要可移植 我们正在讨论是否可以在我们的协议中使用 IEEE754 浮点 出于性能原因 如果我们在发送或接收数据时不必在定点格式之间来回转换 那就太好了 虽然我知道平台和架构之间在大小
  • 如何打印 IEEE754 数字(不使用 printf)?

    为了这个问题的目的 我做not有能力使用printf设施 不幸的是 我无法告诉你原因 但我们现在假设我知道我在做什么 对于 IEEE754 单精度数 您具有以下位 SEEE EEEE EFFF FFFF FFFF FFFF FFFF FFF
  • 精度和的含义。双类型范围

    首先 请允许我承认我是一名经验丰富的程序员 拥有超过 10 年的编程经验 然而 我在这里问的问题是自从大约十年前我第一次拿起一本关于 C 的书以来一直困扰着我的问题 下面是一本关于Python的书的摘录 解释了Python的浮动类型 浮点数
  • 下一个更高/更低的 IEEE 双精度数

    我正在做高精度的科学计算 在寻找各种效果的最佳表示时 我不断想出想要获得下一个更高 或更低 可用双精度数的理由 本质上 我想要做的是将 1 添加到 double 的内部表示中的最低有效位 困难在于 IEEE 格式并不完全统一 如果要使用低级
  • 将两个原始值转换为 32 位 IEEE 浮点数

    我正在尝试通过 TCP modbus 解码来自 Shark 100 功率计的一些数据 我已经成功地拉下了我需要的寄存器 并从寄存器中留下了两个原始值 如下所示 17138 59381 从手册中 我知道我需要将这两个数字转换为32位IEEE浮
  • C# 中的浮点数学一致吗?是真的吗?

    不 这不是另一个 为什么是 1 3 0 3 1 问题 我最近读了很多关于浮点的文章 具体来说 如何相同的计算可能会得到不同的结果在不同的架构或优化设置上 对于存储重播的视频游戏来说 这是一个问题点对点网络 https gamedev sta
  • 计算机如何进行浮点运算?

    我看过很长的文章解释如何存储浮点数以及如何完成这些数字的算术运算 但请简要解释一下为什么当我写的时候 cout lt lt 1 0 3 0 lt
  • 在 C# 中以科学记数法显示 IEEE-754 四倍精度 (binary128) 浮点值

    我正在尝试将原始二进制数据从线程上下文转换为人类可读的格式 并且在尝试转换时出现空的情况四精度浮点 http en wikipedia org wiki Quadruple precision floating point format I
  • 了解 C# 和 Java 中的 IEEE-754 64 位定点表示

    考虑以下 Java 代码 public class Program public static void main String args double number Double MAX VALUE String formattedNum
  • 任何浮点密集型代码是否会在任何基于 x86 的架构中产生位精确的结果?

    我想知道使用浮点运算的 C 或 C 代码是否会在任何基于 x86 的体系结构中产生位精确的结果 无论代码的复杂性如何 据我所知 自 Intel 8087 以来的任何 x86 架构都使用准备处理 IEEE 754 浮点数的 FPU 单元 并且

随机推荐