gpt4 book ai didi

types - double float 是如何存储和计算的?

转载 作者:行者123 更新时间:2023-12-04 05:59:02 31 4
gpt4 key购买 nike

我真的很好奇 double 浮点数是如何存储的。

这些是我到目前为止想出的事情。

  • 它们需要 64 位内存
  • 由三部分组成

  • 符号位(1 位长)
  • 指数(11 位长)
  • 分数(53 位,假设第一位始终为 1,因此仅存储 52 位,除非所有 52 位均为 0。然后假设前导位为 0)


  • 但是我不明白什么是指数、指数偏差以及 wikipedia page. 中的所有这些公式

    谁能解释一下这些东西是什么,它们是如何工作的,并最终一步步计算到实数?

    最佳答案

    在页面下方查看公式:

    除上述异常(exception)情况外,整个 double 数描述为:

    (-1)^符号 * 2^(指数 - 偏差) * 1.尾数

    该公式意味着,对于非 NAN、非 INF、非零和非规范数(我将忽略),您取尾数中的位并在顶部添加一个隐式 1 位。这使得尾数为 1.0 ... 1.111111...11(二进制)范围内的 53 位。要获得实际值,请将尾数乘以 2 的指数幂减去偏差 (1023),然后根据符号位对结果取反或不取反。数字 1.0 的无偏指数为 0(即 1.0 = 1.0 * 2^0),其有偏指数为 1023(偏差只是加到指数上)。因此,1.0 将是符号 = 1,指数 = 1023,尾数 = 0(记住隐藏的尾数位)。

    以十六进制将它们放在一起,该值将是 0x3FF000000000 == 1.0。

    关于types - double float 是如何存储和计算的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141863/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com