【问题标题】:Verify floating point representation验证浮点表示
【发布时间】:2020-03-16 09:58:17
【问题描述】:

我想以 10 为基数对 -(263.125) 进行编码。
我对其进行了编码并得出了这个解决方案:

11000011110000011100100000000000

我只是想确保它是正确的。
提前谢谢你。

【问题讨论】:

  • 请更具体。您是根据哪个指南/算法转换数字的?

标签: floating-point binary logic precision feature-engineering


【解决方案1】:

不完全是,假设您尝试转换为 32 位 IEEE-754 单精度浮点数。你找到的编码对应:

                  3  2          1         0
                  1 09876543 21098765432109876543210
                  S ---E8--- ----------F23----------
          Binary: 1 10000111 10000011100100000000000
             Hex: C3C1 C800
       Precision: SP
            Sign: Negative
        Exponent: 8 (Stored: 135, Bias: 127)
       Hex-float: -0x1.839p8
           Value: -387.5625 (NORMAL)

-263.125 作为单精度浮点数的正确编码是:

                  3  2          1         0
                  1 09876543 21098765432109876543210
                  S ---E8--- ----------F23----------
          Binary: 1 10000111 00000111001000000000000
             Hex: C383 9000
       Precision: SP
            Sign: Negative
        Exponent: 8 (Stored: 135, Bias: 127)
       Hex-float: -0x1.072p8
           Value: -263.125 (NORMAL)

所以,你得到了正确的符号和指数;但你的分数不太对。

【讨论】:

  • 但是当您将“263”转换为二进制数并以 2 为底数时,除法结束时您将得到一个“1”。
  • 也许您对“隐式 1”感到困惑?见这里:stackoverflow.com/questions/4930269/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 2012-12-14
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多