# Math.clz32

# 简介

Math.clz32(x) 返回一个 32 位无符号整数的前导零个数(count leading zeros)。

# 定义

x 转为 32 位无符号整数 ,如果其二进制表示为 000...0101,则返回最前面的 0 的数量。

clz32(0) 特殊地返回 32。

# 例子

Math.clz32(1) = 31Math.clz32(2) = 30Math.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
}

# 应用

常见于位运算优化、哈希、以及快速计算整数的“最高位”位置。