floating-point - 将 IEEE 754 的浮点数转换为十六进制的最简单方法
问题描述
有人可以解释执行上述操作的分步程序吗?
解决方案
以下是 IEEE-754 基本 32 位二进制浮点,具有舍入到最近关系到偶数:
- 从输入数字x开始。
- 如果x为 0,则产生 0x00000000(对于 0)并停止。
- 将e设置为 0。
- 如果 0 ≤ x则设置s为 0,如果x < 0 则设置为 1,并将x设置为 | x |。
- 在 2 ≤ x时重复:将x除以2 并将 1 添加到e。
- 在x < 1时重复:将x乘以 2 并从e中减去 1 。
- 将x乘以2 23。
- 如果e < -126,将x除以 2 -126-<em>e并将e设置为 -126。
- 如果x的小数部分小于 ½,则将其更改为 0。
- 如果x的小数部分大于 ½,则将其更改为 0 并将 1 添加到f。
- 如果x的小数部分是 ½,则将其更改为 0。然后,如果x为奇数,则将x加 1 。
- 将x除以2 23。
- 如果 2 ≤ x,将f除以 2 并将 1 加到e。
- 如果 127 < e:
- 如果s为 1,则产生 0xff800000(对于 -∞)并停止。
- 否则,产生 0x7f800000(对于 +∞)并停止。
- 如果 1 ≤ x:
- 将 127 加到e并从x中减去 1 。
- 否则,将e设置为 0。
- 产生s •2 31 + e •2 23 + x •2 23十六进制并停止。
以上内容来自记忆,未经测试,因此应仔细检查。
推荐阅读
- c# - C#如何将匿名类型传递给 linq 组
- windows - 批处理文件 if 测试周六和周日的条件
- mysql - 如何使用外键从 3 个表中获取特定的行数据?
- python - NoReverseMatch 错误 Django 有人可以解释这些 URL 是如何失败的吗?
- android - 'userMultidexKeepFile' 不存在
- c - 一个uint8_t占用多少内存?
- ajax - 在ajax中添加多个值
- button - Android RecyclerView 列表项 - 按钮不采用意图命令
- python - 如何在 Python 中按工作日过滤负回报和正回报?
- python - 使用 Python Selenium 导航到下一页时遇到问题