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

问题描述 投票:-1回答:1

有人可以解释一步一步的程序来做上述事情吗?

floating-point ieee-754
1个回答
1
投票

以下内容适用于IEEE-754基本32位二进制浮点数,其舍入为圆与最近关系:

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

以上是从内存和未经测试的,所以应该仔细检查。

© www.soinside.com 2019 - 2024. All rights reserved.