问题标签 [ieee-754]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
binary - IEEE 754 规范中的十进制转换范围(二进制浮点运算)
IEEE 754 规范第 11 页底部 5.6 节中的表 2列出了必须执行十进制到二进制浮点转换的十进制值范围。指数范围对我来说没有意义。例如,对于双精度,该表显示符合转换条件的最大十进制值为 (10 17 -1)*10 999。这比 DBL_MAX 大得多,大约为 1.8*10 308。显然我遗漏了一些东西——有人可以向我解释这张桌子吗?谢谢。
python - 两个浮点数之间的浮点数
假设我有两个 Python 浮点数a
,b
是否有一种简单的方法可以找出 IEEE-754 表示(或机器使用的任何表示)中两者之间有多少可表示的实数?
language-agnostic - 对于任何有限浮点值,是否保证 x - x == 0?
浮点值是不精确的,这就是为什么我们应该在比较中很少使用严格的数值相等。例如,在 Java 中会打印false
(如在 ideone.com 上看到的):
通常比较浮点计算结果的正确方法是查看与某个期望值的绝对差是否小于某个可容忍的epsilon。
问题是某些操作是否可以产生准确的结果。我们知道,对于任何非有限浮点值x
(即要么NaN
或无穷大),x - x
总是ALWAYS NaN
。
但如果x
是有限的,这是否有任何保证?
x * -1 == -x
x - x == 0
(特别是我对 Java 行为最感兴趣,但也欢迎讨论其他语言。)
对于它的价值,我认为(我可能在这里错了)答案是肯定的!我认为这归结为对于任何有限的 IEEE-754浮点值,它的加法逆是否总是可以精确计算。由于 egfloat
和double
有一个专门用于符号的位,因此似乎就是这种情况,因为它只需要翻转符号位即可找到加法逆元(即有效数字应保持不变)。
相关问题
functional-programming - 方案:仅使用 R6RS,如何确定 flonum 的尾数和指数
这是否可以从主要 R6RS 方案实现中的浮点数中提取尾数和指数,以便:
v = fxb^e
f - 尾数
b - 基数
e - 指数
例如:3.14 = 0.785 x 2^2
如果不支持,我想直接访问 flonum 的(IEEE 754)位来解决提取上述值的问题,但我没有发现将 flonum 转换为一系列字节(字节向量)的函数。
谢谢你。
javascript - 检索 JavaScript 数值的实际二进制值?
在 JavaScript 中,对于包含数字值的给定属性,是否可以检索实际的二进制值 - 表示该值的 64 位。
变量 x = 13;
x 指向的内存位置存储了哪些 64 位?
我知道那里有 IEEE 754 转换器。但是是否可以从存储单元中检索实际的实时二进制值?顺便说一句,我不需要任何应用程序,我只是好奇......
java - Java的`Double.MIN_NORMAL`和`Double.MIN_VALUE`之间的区别?
Double.MIN_NORMAL
(Java 1.6 中引入) 和有什么区别Double.MIN_VALUE
?
javascript - 在 JavaScript 中编码和解码 IEEE 754 浮点数
我需要对 node.js 中的二进制文件中的 IEEE 754 浮点数和双精度数进行编码和解码,以解析网络协议。
是否有任何现有的库可以做到这一点,还是我必须阅读规范并自己实现它?或者我应该编写一个 C 模块来做到这一点?
bit-manipulation - 将 MBF Double 转换为 IEEE
我在下面找到了一个将 MBF 转换为 IEEE 的主题。
将 MBF Single 和 Double 转换为 IEEE
任何人都可以解释下面标记的代码的功能是什么?
Dim sign As Byte = mbf(6) And ToByte(&H80) 'AND (&H80) 的原因是什么?
Dim exp As Int16 = mbf(7) - 128S - 1S + 1023S '为什么是 1152 (128+1+1023)?
ieee(7) = ieee(7) 或 sign '为什么不直接将符号保存到 ieee(7)?
ieee(7) = ieee(7) 或 ToByte(exp >> 4 And &HFF) '什么是移位 4 的原因?
types - IEEE 754 浮点数无法准确表示的第一个整数是哪个?
为清楚起见,如果我使用的是实现 IEE 754 浮点数的语言并声明:
...然后将它们打印出来,我会得到 0.0000 和 1.0000 - 完全正确。
但是 IEEE 754 不能代表实线上的所有数字。接近于零,“差距”很小;当你越走越远,差距就越大。
所以,我的问题是:对于 IEEE 754 浮点数,它是第一个(最接近于零)的整数,它不能被精确表示?我现在只真正关心 32 位浮点数,尽管如果有人给出 64 位的答案,我会很感兴趣!
我认为这就像计算 2 bits_of_mantissa并加 1 一样简单,其中bits_of_mantissa是标准公开的位数。我在我的机器(MSVC++,Win64)上为 32 位浮点数做了这个,不过看起来还不错。
floating-point - 小数转浮点
如果我想转换一个数字 Ex。32.24x10^5 到 IEEE 754 标准手动我该怎么做?