# Math.clz32
# 简介
Math.clz32(x) 返回一个 32 位无符号整数的前导零个数(count leading zeros)。
# 定义
将 x 转为 32 位无符号整数 000...0101,则返回最前面的 0 的数量。
clz32(0) 特殊地返回 32。
# 例子
Math.clz32(1) = 31,Math.clz32(2) = 30,Math.clz32(0x80000000) = 0。
# JS 实现
const clz32 = (x) => {
x = x >>> 0
if (x === 0) return 32
let n = 0
for (let bit = 31; bit >= 0; bit--) {
if (x & (1 << bit)) break
n++
}
return n
}
# 应用
常见于位运算优化、哈希、以及快速计算整数的“最高位”位置。