c - 将 IEEE754 转换为自定义浮点表示
问题描述
只是在寻找建议,IEEE754单精度浮点表示应该如何,即以下:
-1符号* 2指数-127 * 1.尾数2
其中隐藏位值为 1.0,准确有效地转换为自定义浮点表示格式,如下所示:
-1符号* 2指数 128 * 0.1 尾数2
其中隐藏位值是 0.5
我不打算将这项工作委托给某人为我完成这项工作,而是主要寻找有关如何以正确和最准确的方式完成这项工作的建议。
解决方案
在第一种方案中表示某个值x的位在第二种方案中表示x /4。因此,很明显,要在第二种方案中表示x,通常将指数增加 2。然后就是要处理的异常情况:
- 如果指数为 255,则对象为无穷大或 NaN。原样返回。
- 如果指数为 253 或 254,则不能增加 2,因此结果为无穷大。
- 如果指数为 0,则该数字是次正规的。如果有效数字域的两个高位是 00,只需将有效数字左移两位。否则,如果位为 01,则将有效位左移两位(丢弃移出的位)并将指数设置为 1。否则,将有效位左移一位并将指数设置为 2。
- 否则,将指数加二。
推荐阅读
- python - Discord.py 机器人提到了一个随机用户
- ssl - 从 C:\ProgramData\Microsoft\Crypto\Keys 获取私钥
- google-sheets-formula - 调整计数 - Google 工作表 - 查询(子查询)
- python - 不和谐.py | 更新频道名称 on_member_join
- multidimensional-array - 使用滑动窗口重塑 ndarray 而不使用太多内存的有效方法
- flutter - 无法使用 Flutter 访问 Google Drive API
- python - 将游标行与值列表进行比较 PYTHON + Pandas
- c++ - 在自定义日期时间类中执行日期时间算术
- javascript - 在每次测试之前检查是否在 Cypress 中设置了 localStorage 以避免重新登录
- javascript - 在 JavaScript 中将 JSON 数组格式转换为不同的 JSON 格式