我知道在大多数情况下取幂是 O(log n) 或更糟,但我在试图理解数字是如何表示自己时迷失了方向。以 JavaScript 为例,因为它有多种原生数字格式:
100000 === 1E5 && 100000 === 0303240
>>> true
在内部,它们最终不都被存储和操作为存储在内存中的二进制值吗?如果是这样,机器是否能够像存储八进制一样快地存储十进制和科学记数法表示?
因此,您会期望+("1E" + n)
比 更快Math.pow(10, n)
吗?
这个问题主要是关于 1E(n) 是如何工作的,但是在尝试自己思考答案时,我对如何首先解析和存储数字变得更加好奇。我将不胜感激您能提供的任何解释。