将IEEE 754的浮点数转换为十六进制的最简单方法

时间:2019-03-01 20:04:27

标签: floating-point ieee-754

有人可以解释上述步骤吗?

1 个答案:

答案 0 :(得分:1)

以下是IEEE-754基本的32位二进制浮点,具有从最近到最近的关系:

  1. 以输入数字 x 开头。
  2. 如果 x 为0,则产生0x00000000(代表0)并停止。
  3. e 设置为0。
  4. 如果0≤ x 设置 s 为0,如果 x <0则设置为1,并将 x 设置为| x |。
  5. 在2≤ x 的同时重复:将 x 除以2,然后将1添加到 e
  6. x <1时重复:将 x 乘以2,然后从 e 中减去1。
  7. x 乘以2 23
  8. 如果 e <−126,请将 x 除以2 −126− e 并设置 e 至-126。
  9. 如果 x 的分数部分小于½,则将其更改为0。
  10. 如果 x 的分数部分大于½,请将其更改为0并在 f 中加1。
  11. 如果 x 的小数部分为½,则将其更改为0。然后,如果 x 为奇数,则将1加到 x
  12. x 除以2 23
  13. 如果2≤ x ,则将 f 除以2,然后将1加到 e
  14. 如果127 < e
    • 如果 s 为1,则产生0xff800000(对于-∞)并停止。
    • 否则,产生0x7f800000(用于+∞)并停止。
  15. 如果1≤ x
    • e 加127,并从 x 中减去1。
    • 否则,将 e 设置为0。
  16. 产生 s •2 31 + e •2 23 + x •2 23 以十六进制表示并停止。

以上内容来自内存,未经测试,因此应仔细检查。