是否有可能在二进制浮点表示以表示例如,7x20.25?如果是,问题是它是否符合标准?是否有可能在浮点二进制数中有一个浮点指数?
回答
创建包含浮点指数的浮点数的可能性的理论答案是是的,它可以被创建 - 数字如何表示是一个约定变成标准的问题。没有人会阻止创建自己的约定。它甚至在理论上可以创建浮点数的浮点尾数与浮点指数与浮点基数(对术语的解释见下文)。
变本加厉,甚至可以推测约浮动用于连续有效数,指数和十进制基数点数的多个级别。现在的问题是,它是否会实际使用 - 我想这对于某些应用是的,这可能是扩大范围,同时保持浮点数的精度有限,一个有趣的选择。这将是其中有效数和指数仍然是一个积分但精度和可表示的实数的范围是通过使用大的整数扩展解决这样的问题,以在开源GNU MPFR Library使用的一个的方向相反。
如果这个数字必须被大多数浮点实现所接受,那么这意味着它应该符合标准,比的答案不是。
根据IEEE-754 2008标准浮点运算:
该组有限的浮点数的由以下整数的参数确定的特定格式内所能表述:
- B =所述基数,2或10
- p =数字的有效数的数目(精度)
- EMAX =最大指数e
- emin =最小指数e
emin对所有格式都是1 - emax。
正如开头说什么防止任何人创建它自己的浮点表示由整数有效数和浮点指数 - 即使有效位数和基数可以是自定义的。但是这种实现需要为其浮点数算术提供支持。因此,如果问题是有可能设计出这样一个数字比答案是肯定的如果问题是它是否实用答案是肯定再次。有关详细信息,请参阅GNU MPFR库实现。
当前的浮点格式被设计为精确地存储有理数的子集,特别是具有终止二进制分数表示的特定数字。 2^0.25
是两个第四个根,是一个无理数,也就是将它乘以任何有理数的结果,包括7x2ˆ0.25
您可以非常接近它作为具有整数指数的传统浮点数。例如,在Java 7*Math.pow(2,0.25)
中。
浮点数一般用作近似值,所以对大多数情况来说这是一个可接受的解决方案。你有一个应用程序,这不会是一个解决方案?
您还会问是否符合标准。它肯定不符合IEEE 754.你还没有说明任何好处,并且考虑到它的复杂性,将它带入标准将会带来很大的好处。
- 1. 是否有可能以保真度将浮点双精度浮点双精度到两个十进制整数?
- 2. “复数浮点”和“浮点复数”是否都有效C?
- 3. 将二进制浮点数转换为十六进制浮点数
- 4. 十进制浮点数
- 5. 十六进制浮点数
- 6. 在浮点数中存储浮点数?
- 7. 确定一个浮点数是否有小数部分?
- 8. 将小数位数多的浮点数转换为浮点数只有一个小数位的浮点数
- 9. 浮点指数差
- 10. 用十进制数表示的二进制浮点数
- 11. 将最小可能浮点数添加到浮点数
- 12. 查找一个浮点数是否是.NET中另一个浮点数的倍数
- 13. 如何在Python中使用32位浮点数,64位浮点数和另一个32位浮点数读取二进制文件
- 14. 是否有可能在Python中使用KMeans中的非浮点数据(Scikit-Learn)?
- 15. 将十进制浮点数转换为二进制并返回
- 16. 将十进制浮点数转换为二进制
- 17. 在python中打包和解压缩二进制浮点数
- 18. 如何在PHP中获取浮点数的二进制表示?
- 19. 硬浮点数和软浮点数之间有什么区别?
- 20. 如何将一个浮点数乘以十进制数并得到一个浮点数
- 21. 声明浮点数或浮点数吗?
- 22. 争夺一个浮点数?
- 23. 用一个浮点数
- 24. 是否有可能有一个无限精度浮点数据类型,在visual basic,java或C++中?
- 25. 是否可以打印一个双精度浮点数
- 26. 以二进制表示浮点数和整数
- 27. 两个浮点数
- 28. 是否有一个很好的基数实现浮点数在C#
- 29. 将Windows'二进制'浮点数读取到ASP jscript变量中
- 30. 不正确指数(?)从十进制表示转换浮子32位二进制(IEEE 754浮点)时