浮点转换格式算法 IEEE
Algorithm for Floating point conversion format IEEE
假设我有一个给定格式 FA 的浮点数 (fp)(即指数大小、尾数大小),更具体地说是
FA fa;
假设我想将其转换为具有操作 FA2FB 的格式 FB,它给出一个浮点数 fb,即类似于
FB fb = FA_2_FB(fa);
据您所知,IEEE 标准是否提供了执行此转换的通用方法? (它可能是缩小或扩大或只是格式更改,具有相同的位数。
我的问题清楚了吗?
如果标准没有提供任何内容,我将指定我正在考虑的情况。
我正在从维基百科文章中复制术语 IEEE floating point
我认为解决这个问题的最佳方法是将其分为四个问题:
- 识别NaN和无穷大输入,直接生成目标格式对应的位模式。
- 给定一个数字输入,提取符号、尾数和指数
- 检查新格式的溢出和次正规。如果溢出,生成适当的无穷大。如果低于正规数,则计算保留在有效数中的位数。
- 打包成新格式。如果新的有效位数比旧的有效位数少,则可能需要四舍五入。
您将需要select 一种标准舍入模式。最简单的是向零舍入,这是简单的截断。但是,我建议四舍五入到最接近的位置,中点四舍五入到偶数。为此,您需要查看第一个丢弃位的值,以及它之后是否有任何非零位。
假设我有一个给定格式 FA 的浮点数 (fp)(即指数大小、尾数大小),更具体地说是
FA fa;
假设我想将其转换为具有操作 FA2FB 的格式 FB,它给出一个浮点数 fb,即类似于
FB fb = FA_2_FB(fa);
据您所知,IEEE 标准是否提供了执行此转换的通用方法? (它可能是缩小或扩大或只是格式更改,具有相同的位数。
我的问题清楚了吗? 如果标准没有提供任何内容,我将指定我正在考虑的情况。
我正在从维基百科文章中复制术语 IEEE floating point
我认为解决这个问题的最佳方法是将其分为四个问题:
- 识别NaN和无穷大输入,直接生成目标格式对应的位模式。
- 给定一个数字输入,提取符号、尾数和指数
- 检查新格式的溢出和次正规。如果溢出,生成适当的无穷大。如果低于正规数,则计算保留在有效数中的位数。
- 打包成新格式。如果新的有效位数比旧的有效位数少,则可能需要四舍五入。
您将需要select 一种标准舍入模式。最简单的是向零舍入,这是简单的截断。但是,我建议四舍五入到最接近的位置,中点四舍五入到偶数。为此,您需要查看第一个丢弃位的值,以及它之后是否有任何非零位。