gpt4 book ai didi

javascript - 在 JavaScript 中快速接近 2 的幂?

转载 作者:可可西里 更新时间:2023-11-01 02:38:30 26 4
gpt4 key购买 nike

下面的表达式是否有更快的替代方法:

Math.pow(2,Math.floor(Math.log(x)/Math.log(2)))

也就是说,取最接近(较小)的 2 的整数次幂?我在内循环中有这样的表达。我怀疑它可能会快得多,考虑到可以只从 double 的 IEEE 754 表示中获取尾数。

最佳答案

利用 ES6 的 Math.clz32(n)计算 32 位整数的前导零:

// Compute nearest lower power of 2 for n in [1, 2**31-1]:
function nearestPowerOf2(n) {
return 1 << 31 - Math.clz32(n);
}

// Examples:
console.log(nearestPowerOf2(9)); // 8
console.log(nearestPowerOf2(33)); // 32

关于javascript - 在 JavaScript 中快速接近 2 的幂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26965171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com