ieee-754相关内容

IEEE 754:格式的基本原理:非正态和正态数字

谁能澄清一下: 为什么次正态数的格式到底是±(0.F) × 2^-126而不是±(1.F) × 2^-127? 为什么正态数的具体格式是:±(1.F) × 2^exp,而不是比如说±(11.F) × 2^exp,或者比如说±(10.F) × 2^exp? 推荐答案 我使用简化示例检查了这两种格式的属性。为简单起见,我使用格式0.F × 10^-2和1.F × 10^-3,其中F ..

为什么无穷大 × 0 = NaN?

IEEE 754 将 1/0 的结果指定为 ∞(无穷大). 但是,IEEE 754 然后将 0 × ∞ 的结果指定为 NaN. 这感觉反直觉:为什么 0 × ∞ 不是 0? 我们可以将 1/0 = ∞ 视为 1/z 的极限,因为 z 趋于零 我们可以认为 0 × ∞ = 0 是 0 × z 的极限,因为 z 趋于 ∞. 为什么 IEEE 标准遵循直觉 1. 而不是 2 ..
发布时间:2022-01-17 09:30:13 其他开发

NVIDIA GPU (sm_13) 上的 IEEE-754 标准

如果我在主机和设备(GPU arch sm_13)上执行浮点(单精度)操作,那么值会不同吗? 解决方案 在 白皮书 来自 NVIDIA.基本上: 目前几乎所有东西都实现了 IEEE-754; 即使在忠实实施该标准之间,您仍然可以看到结果差异(众所周知,英特尔在内部使用 80 位实现双精度),或者编译器的高优化设置可能会改变结果 计算能力 2.0 及更高版本的 NVIDIA 卡支持 ..
发布时间:2022-01-10 15:40:34 其他开发

如何将浮点数保存为 2 个字节?

是的,我知道 IEEE-754 半精度标准,是的,我知道在该领域所做的工作.简而言之,我试图将一个简单的浮点数(如 52.1 或 1.25)保存在 2 个字节中. 我在 Java 和 C# 但它们通过解码不同的数字来破坏输入值.您输入 32.1 并在编码解码后得到 32.0985. 有什么方法可以在不破坏输入值的情况下以 16 位存储浮点数? 非常感谢. 解决方案 您可以 ..
发布时间:2022-01-09 20:00:01 C#/.NET

如何将 IEEE 754 单精度二进制浮点数转换为十进制数?

我正在开发一个需要将 32 位数字转换为十进制数的程序. 我从输入中得到的数字是一个 32 位数字,表示为浮点数.第一位是符号,接下来的 8 位是指数,其他 23 位是尾数.我正在用 C 语言编写程序.在输入中,我将该数字作为 char[] 数组,然后我在其中创建一个新的 int[] 数组存储符号、指数和尾数.但是,当我尝试将尾数存储为某种数据类型时,我遇到了尾数问题,因为我需要将尾数用作数 ..
发布时间:2022-01-09 19:31:48 其他开发

如何在 C# 中获取浮点数的 IEEE 754 二进制表示

我有一些单精度和双精度浮点数,我想从 byte[] 写入和读取..Net 中有什么东西可以用来将它们转换为 32 位和 64 位 IEEE 754 表示吗? 解决方案 .NET Single 和 Double 已经是 IEEE-754 格式.您可以使用 BitConverter.ToSingle() 和 ToDouble() 将 byte[] 转换为浮点数,GetBytes() 反过来. ..
发布时间:2022-01-09 19:25:57 C#/.NET

浮点到二进制值(C++)

我想在 C++ 中获取一个浮点数,例如 2.25125,以及一个填充了二进制值的 int 数组,该二进制值用于将浮点数存储在内存中 (IEEE 754). 所以我可以取一个数字,最后得到一个带有浮点二进制值的 int num[16] 数组:num[0] 将是 1num[1] 将是 1num[2] 将是 0num[3] 将是 1等等…… 将 int 放入数组并不难,只是获取浮点数的二进制 ..
发布时间:2022-01-09 19:19:53 C/C++开发

IEEE-754 浮点精度:允许多少误差?

我正在从 sqrt 函数(用于 64 位双精度)>fdlibm 到我目前正在使用的模型检查工具 (cbmc). 作为我工作的一部分,我阅读了很多关于 ieee-754 标准的内容,但我认为我不了解基本操作(包括 sqrt)的精度保证. 测试我的 fdlibm 的 sqrt 端口,我在 64 位双精度上使用 sqrt 得到以下计算: SQRT(19770615168252036055552 ..

javascript 如何以如此准确的方式打印 0.1?

我听说 javascript Numbers IEEE 754 浮点数,这解释了原因 >0.3 - 0.20.09999999999999998 但我不明白 >0.10.1 我认为 0.1 不能准确地存储为以 2 为底的浮点数,但它会立即打印出来,就像它一直是 0.1 一样.是什么赋予了?解释器在打印之前是否进行了一些舍入? 至少有 2 个版本的 IEEE 754 对我没有帮助:19 ..
发布时间:2022-01-09 10:56:03 前端开发

IEEE double 使得 sqrt(x*x) ≠ x

在计算x*x 不会上溢或下溢到 Inf、0 或非正规数? 假设 sqrt 返回最接近的可表示结果,x*x 也是如此(两者都是 IEEE 标准规定的,“平方根运算计算为如果以无限精度计算,然后四舍五入为两个最接近的指定精度的浮点数之一,这些浮点数围绕无限精确的结果"). 假设如果存在这样的双打,那么可能有接近1的例子,我写了一个程序来找到这些反例,它没有找到1.0和之间的任何反例1.00 ..
发布时间:2022-01-09 10:54:55 其他开发

浮点 NaN 有效载荷有什么用途?

我知道 IEEE 754 将 NaN 定义为具有以下按位表示: 符号位可以是 0 或 1 指数字段包含所有1位 尾数的某些位用于指定它是安静 NaN 还是信号 NaN 尾数不能全部为 0 位,因为该位模式保留用于表示无穷大 尾数的剩余位构成有效载荷 当计算的输入为 NaN 时,有效载荷(与整个 NaN 一样)传播到浮点计算的结果,尽管我不知道这种传播的细节或标准是否指定如何这个 ..
发布时间:2022-01-09 10:54:07 其他开发

可以影响双精度的最大小数位数

考虑 d1.d2d3d4d5...dnExxx 形式的十进制表示,其中 xxx 是任意指数,d1 和 dn 都不是零. 是否已知最大 n 使得存在十进制表示 d1.d2d3d4d5...dnExxx 使得区间 (d1.d2d3d4d5...dnExxx, d1.d2d3d4d5...((dn)+1)Exxx)包含一个 IEEE 754 double? n 至少应为 17.问题是 17 ..
发布时间:2022-01-09 10:53:11 其他开发

非规范化数字 - IEEE 754 浮点

因此,我正在尝试了解有关 IEEE 754 浮点数标准中定义的非规范化数字的更多信息.感谢 Google 搜索结果,我已经阅读了几篇文章,并且浏览了几篇 StackOverFlow 帖子.但是我还有一些问题没有得到解答. 首先,回顾一下我对非规范化浮点数的理解: 精度位数较少且较小的数字(在幅度)比归一化数字 本质上,非规范化的浮点数能够表示可以用任何浮点值表示的最小(数量级)数 ..
发布时间:2022-01-09 10:52:32 其他开发

如何从十进制数转换为 IEEE 754 单精度浮点格式?

如何手动将十进制(以 10 为基数)数字更改为 IEEE 754 单精度浮点格式?我知道它由三个部分组成,一个符号,一个指数和一个尾数.我只是不完全理解最后两部分实际代表什么. 解决方案 找到比你的数字小的 2 的最大幂,例如,如果你从 x = 10.0 开始,那么 23 = 8,所以指数为 3.指数偏置 127,因此这意味着指数将表示为 127 + 3 = 130.尾数为 10.0/8 ..
发布时间:2022-01-09 10:47:54 其他开发

Excel为什么不按照8字节IEEE 754四舍五入

以下表达式在 C# 中的计算结果为 false: (1 + 1 + 0.85)/3 我认为在大多数其他实现 IEEE 754 的编程语言中也是如此,因为 (1 + 1 + 0.85)/3 的计算结果为 0.95000000000000007,后者更大比 0.95. 但是,即使 Excel 也应该实现 IEEE 754 的大部分内容,以下在 Excel 2013 中计算为 TRUE: ..
发布时间:2022-01-09 10:45:09 其他开发