28得票8回答
确保C++的double类型为64位

在我的C++程序中,我需要从外部字节序列中提取一个64位浮点数。是否有一种方法可以在编译时确保双精度浮点数为64位?还有其他类型我应该使用来存储数据吗? 编辑:如果您正在阅读此内容,并且实际上正在寻找确保以IEEE 754格式存储的方法,请查看Adam Rosenfield下面的答案。

28得票2回答
如何在Javascript中将浮点数转换为其二进制表示(IEEE 754)?

在JavaScript中,将浮点数转换为其二进制表示的最简单方法是什么?(例如1.0 -> 0x3F800000)。我尝试手动实现,这对于通常的数字来说可以工作,但它在非常大或非常小的数字(没有范围检查)和特殊情况(NaN,infinity等)上失败:function floatToNu...

28得票5回答
标准浮点数在0和1之间有多少个唯一值?

我猜另一种表达这个问题的方式是:使用 float,在 0 和 1 之间可以到达哪一个小数位数呢? 我试图通过查看 MSDN 来解决这个问题。其中写明精度为7位数字,我认为这意味着它只能跟踪0.0000001的变化。 然而,如果我执行以下操作:float test = 0.00000000000...

28得票4回答
浮点数比较再探讨

这个话题在StackOverflow上已经被提及多次,但我相信这是一个新的观点。是的,我阅读了Bruce Dawson的文章和计算机科学家应该知道的浮点运算知识以及这个不错的答案。 据我理解,在典型系统上,比较浮点数是否相等时存在四个基本问题: 浮点计算并不精确 a-b 是否“小”取决于...

27得票8回答
下一个更高/更低的IEEE双精度数

我正在进行高精确度的科学计算。在寻找各种影响的最佳表示时,我不断想要获取下一个更高(或更低)可用的双精度数。实质上,我想做的是将双精度数的内部表示中的最低有效位加一。 问题在于IEEE格式并不完全统一。如果使用低级代码并实际将一添加到最低有效位,则结果可能不是下一个可用的双精度数。例如,它可...

26得票3回答
为什么我们要对浮点数的指数进行偏置?

我试图理解二进制数的浮点表示,但无论我看哪里都找不到一个好的答案。 为什么指数是有偏差的? 传统的可靠的二进制补码方法有什么问题吗? 我尝试阅读维基百科关于这个主题的文章,但它只说:“用于有符号值的通常表示会使比较更困难。”

25得票4回答
使用Python从二进制文件中读取32位带符号的IEEE 754浮点数?

我有一个二进制文件,它只是由有符号32位IEEE754浮点数列表组成。它们没有被任何东西分隔,而是一个接一个地出现,直到EOF。 我该如何从此文件中读取并正确解释它们为浮点数呢? 我尝试使用read(4),但它会自动将它们转换为带ASCII编码的字符串。 我还尝试使用bytearray,...

25得票6回答
在C语言中,可以安全地假设浮点数是使用IEEE754浮点数表示的吗?

浮点数在C中是实现定义的,因此没有任何保证。 我们的代码需要可移植性,我们正在讨论是否可以在协议中使用IEEE754浮点数。出于性能原因,如果我们不必在发送或接收数据时转换为定点格式,那么这将是很好的。 虽然我知道在平台和体系结构之间,long或wchar_t的大小可能会有所差异。但我似乎...

25得票4回答
将IEEE 754双精度数转换为字符串的算法?

许多使用IEEE 754双精度浮点数的编程语言都提供了将这些双精度浮点数转换为字符串的库函数。例如,C具有,C ++具有,Java具有等。 那么这些函数内部是如何实现的呢?也就是说,它们使用哪些算法将双精度浮点数转换为字符串表示形式,考虑到它们通常受到程序员选择的精度限制? 谢谢!

25得票5回答
负零浮点数值的用途是什么?

考虑以下 C++ 代码:double someZero = 0; std::cout << 0 - someZero << '\n'; // prints 0 std::cout << -someZero << std::endl; // p...