如何找到与给定输入最接近的 2^N 值?

Bha*_*axy 1 java algorithm exponent

我必须以某种方式保持程序运行,直到指数函数的输出超过输入值,然后将其与指数函数的先前输出进行比较。即使只是伪代码,我将如何做这样的事情?

Ser*_*sev 5

  1. 从给定数字中找到以 2 为底的对数 => x := log (2, input)
  2. 将步骤 1 中获得的值向上和向下舍入 => y := round(x), z := round(x) + 1
  3. 找到 2^y, 2^z,将它们与输入进行比较并选择更适合的一个