标签: ieee-754

将MBF Double转换为IEEE

我在下面找到了将MBF转换为IEEE的主题.

将MBF Single和Double转换为IEEE

任何人都可以解释下面标记的代码的功能是什么?

  1. 昏暗的标志As Byte = mbf(6)和ToByte(&H80) '是什么原因和(&H80)?

  2. Dim exp As Int16 = mbf(7) - 128S - 1S + 1023S '为什么是1152(128 + 1 + 1023)?

  3. ieee(7)= ieee(7)或签署 '为什么不将标志保存到ieee(7)?

  4. ieee(7)= ieee(7)或ToByte(exp >> 4 And&HFF)'换班4的原因是什么?


Public Shared Function MTID(ByVal src() As Byte, ByVal startIndex As Integer) As Double
    Dim mbf(7) As Byte
    Dim ieee(7) As Byte

    Array.Copy(src, startIndex, mbf, 0, 8)

    If mbf(7) <> 0 Then
        Dim sign As Byte = mbf(6) And ToByte(&H80)
        Dim exp As Int16 = mbf(7) …
Run Code Online (Sandbox Code Playgroud)

bit-manipulation ieee-754 mbf

1
推荐指数
1
解决办法
673
查看次数

IEEE 754 Float调试 - 从内存小端到实际浮点数

我使用以下示例使用VS2008测试IEEE 754浮动格式:

int main(int argc, char *argv[])
{
    float i = 0.15625;
}
Run Code Online (Sandbox Code Playgroud)

我把&i放到VS2008手表上,我看到地址是0x0012FF60,我可以从内存调试窗口看到地址的内容是00 00 20 3e,见下图:

0x0012FF60 00 00 20 3e cc cc cc cc

BTW我有IEEE754浮动格式的基本知识,我知道IEEE 754浮动格式由三个字段组成:符号位,指数和分数.分数是没有最重要位的有效数.

但是我如何从小端00 00 20 3e到0.15625精确计算?

非常感谢

c++ ieee-754 visual-studio-2008

1
推荐指数
1
解决办法
1814
查看次数

在什么时候双打开始失去精确度?

我的应用程序需要在某些数字上执行一些操作:>,<,==,!=,+, - ,++等(但没有除法).这些数字有时是整数,更少有浮点数.

如果我在内部使用"双"类型(由IEEE 754定义),即使对于整数,直到我可以安全地使用它们就好像它们是ints一样,而不会出现奇怪的舍入错误(例如,n == 5 && n == 6都是真的,因为它们是相同的数字)?

显然,各种操作的第二个输入(+, - 等)总是一个整数,我知道用0.000 [..] 01我会从一开始就遇到麻烦.

作为奖励答案,同样的问题,但为float.

c++ floating-point ieee-754

1
推荐指数
1
解决办法
1659
查看次数

ieee754优化

是否__ieee754_pow()可以使用-O选项或优化功能ffast-math.
是呼吁pow将改变呼吁cbrt,如果我们使用NEX代码:

double test (double x)
{
  return __ieee754_pow(x, 2./3.);
}
Run Code Online (Sandbox Code Playgroud)

如果答案是否定的,请解释原因.

c optimization ieee-754

1
推荐指数
1
解决办法
650
查看次数

将十进制转换为单精度 IEEE 754

(-128.4875) base 10 到单精度 IEEE 754

将 (128.4875) base 10 转换为 BINARY 是: 1000 0000 。0111 1100 1100 1100 1100...

二进制的科学符号是: 1 。0000 0000 1111 1001 1001 1001 ... x 2^7

SIGN BIT 为:1(1 位)

尾数是0000 0000 1111 1001 1001 100(23 位)

指数是 7 + 127 = (134) base 10 = 1000 0110 (8 bits)

对照在线转换器检查我的答案:

http://s17.postimg.org/3pkw9glm7/mantissa.png

(not enough reputation to post in-line images)
Run Code Online (Sandbox Code Playgroud)

我得到了所有但尾数的最后一位数字。我所做的是将科学记数法中的点后的前 23 位数字去掉。

我得到 0,而转换器得到 1。为什么会这样?

floating-point binary decimal ieee-754

1
推荐指数
1
解决办法
2212
查看次数

二进制浮点数表示为十进制数

并非所有十进制数都可以使用二进制浮点数精确表示.

http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

有两个原因可能导致实数不能完全表示为浮点数.最常见的情况用十进制数0.1表示.虽然它具有有限的十进制表示,但在二进制中它具有无限重复表示.

反过来呢?如果使用足够的数字,是否可以使用十进制数精确表示每个IEEE 754浮点数?

floating-point binary numbers decimal ieee-754

1
推荐指数
1
解决办法
79
查看次数

复杂文字的虚假解析/评估

在计算复数时,python 喜欢摆弄符号。

>>> -0j
(-0-0j)
>>> (-0-0j)
0j
Run Code Online (Sandbox Code Playgroud)

为什么?

注意我在阅读这个问题时注意到了这一点

python parsing ieee-754 complex-numbers

1
推荐指数
1
解决办法
77
查看次数

IEEE 754中规定的浮点计算结果是否包含无穷大和NaN?

例如,使用Visual Studio 2017,我得到了以下结果

inf + inf评估为inf

inf +( - inf)评估为-nan(ind)

浮点计算的结果是否涉及IEEE 754中规定的无穷大和NaN,还是编译器依赖的?

floating-point ieee-754

1
推荐指数
1
解决办法
299
查看次数

为什么 console.log 不显示分配的 var 的 IEEE-754 浮点值?

我知道 JavaScript 中的浮点值以 IEEE 754 中指定的二进制 base-2 格式存储。对我来说,这意味着当我将文字值分配给.1变量时,实际存储的值将是 0.100000001490116119384765625(或一些高像这样的精确数字——我的数学可能是错误的)。

但是与该假设相反,console.log存储值的 不反映这一点。以下代码: var a = 0.1; console.log(a);

...在 Chrome 和其他浏览器中执行时,将输出: 0.1

我本来希望它是: 0.100000001490116119384765625

此时的值是否a成立0.10.1000000...?如果是后者,那么通过什么方式console.log()显示0.1?我对这里发生的事情很感兴趣。(例如,JS 是否在变量中存储了数字的文本表示?)

对于可能会很快“标记为重复”的勤奋管理员,请注意,我问的问题与更常见的问题和变体“为什么我突然看到这些古怪的高精度数字相反?”

javascript floating-point ieee-754

1
推荐指数
1
解决办法
372
查看次数

将整数位模式解析为 dart 中的 IEEE 754 浮点数

我通过接口(蓝牙、列表)获取 4 个字节的数据。数据表示 IEEE 754 浮点数(例如0x3fd0a3d7,大致表示1.63为 binary32 float

在 dart lang 中有没有办法将它转换/输入双关以浮动然后加倍?类似于intBitsToFloatJava 中的东西。找不到任何东西。还是我只需要自己编写 IEEE 754 解析?

floating-point ieee-754 type-punning dart

1
推荐指数
1
解决办法
301
查看次数