この解答例はChatGPTによって生成されています,正しいかは自己判断で。
BFE.devでのAI解答例 - JavaScript コーディング問題
172. implement `Math.clz32()`
以下が実装例です。
function clz32(num) {
// 32-bit integerの範囲内に収まるように調整
num = num >>> 0;
// numが0の場合は32を返す
if (num === 0) return 32;
let count = 0;
// numを左にシフトさせ、先頭の0の個数を数える
while ((num & 0x80000000) === 0) {
num <<= 1;
count++;
}
return count;
}
この関数は、与えられた数値が32ビット整数であることを前提としているため、与えられた引数を32-bit整数に変換し、最初に0の個数を数えるために32を返す場合を除いて、与えられた数値を左にシフトし、先頭の0の個数を数えています。