contributed by <BreezeDa>
BreezeDa
顧名思義,便是計算從 MSB 開始往 LSB 算起直到碰到非 0 的 bit 為止共有幾個為 0 的 bit
以下 code 可以利用 31 - clz 而得到 log2(N) 的整數部分
BITS = 31; for (; i < 32; --BITS) { if (N & 0x80000000) break; N <<= 1; }
最後 BITS 的結果便是 log2(N)
參考資料
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up