SOURCE

// Math.clz32() 返回数字二进制表示的开头的0的个数。

// 请自行实现。

// clz32(1) // 31
// clz32(10000) // 18
// clz32(25.45) // 27

function clz32(num) {
    //转为32位无符号整数(处理负数和小数)
    const unit32 = num >>> 0;
    // console.log('unit', unit32);

    //转为2进制字符串 补足32位
    const bin = unit32.toString(2).padStart(32, '0');

    // console.log('bin', bin);
    //返回前导0的个数(匹配连续0 知道遇到1)
    return bin.match(/^0*/)[0].length;

};

console.log(clz32(1));
console.log(clz32(10000));
console.log(clz32(25.45));
console 命令行工具 X clear

                    
>
console