SKL*_*LAK 9 c bit-manipulation logarithm operator-keyword
我需要在C中计算数字的日志基数2,但我不能使用数学库.答案不需要精确,只需要最接近的int.我已经考虑过了,我知道我可以使用while循环并继续将数字除以2,直到它<2,并保持迭代次数,但这是否可以使用按位运算符?
小智 13
已经由abamert回答了但是为了更具体一点,这就是你如何编码它:
Log2(x) = result
while (x >>= 1) result++;
Run Code Online (Sandbox Code Playgroud)