计算数字的归一化和工程科学记数法的最快算法
Posted
技术标签:
【中文标题】计算数字的归一化和工程科学记数法的最快算法【英文标题】:Fastest algorithm to calculate the Normalized and Engineering Scientific notation of a number 【发布时间】:2012-01-29 17:05:31 【问题描述】:测试用例:
35000
-> 数字的标准化科学记数法是 3.5 * 10E4
-> 工程符号为 35 * 10E3
执行此操作的简单算法将继续将数字除以 10,直到我们获得所需的符号。然而,这意味着算法将是 O(零的数量)。我们能做得更好吗?
【问题讨论】:
如果它是双精度数,您可以直接提取尾数以获得一个非常好的第一个近似值,尽管这会在双精度数不再标准化存储的极端情况下中断。 假设快速实现 log,int exp = floor(log(x)) 和 expEng = 3 (exp / 3) @Adam,问题是日志的效率如何? 【参考方案1】:关于打印对人类友好的浮点数表示的经典论文可以阅读here。这太复杂了,无法在此处作为代码进行讨论。
【讨论】:
以上是关于计算数字的归一化和工程科学记数法的最快算法的主要内容,如果未能解决你的问题,请参考以下文章