algorithm: Log2 using bitwise operations (#1132)

This commit is contained in:
acarlson
2022-10-09 08:06:23 -04:00
committed by GitHub
parent 56713e8f43
commit 78f023fdd1
2 changed files with 21 additions and 0 deletions

View File

@ -0,0 +1,14 @@
/**
* https://handwiki.org/wiki/Binary_logarithm
* Approximate log2 using only bitwise operators
* @param {number} n
* @returns {number} Log2 approximation equal to floor(log2(n))
*/
export const logTwo = (n) => {
let result = 0
while (n >> 1) {
n >>= 1
result++
}
return result
}