c语言lg函数如何表示
在C语言中,可使用lg
函数来表示一个数的二进制位数减1。一种常见的实现方式以下:
int lg(int n) {
int count = 0; // 计数器,记录二进制位数减1
while (n > 1) { // 当n大于1时,继续右移
n >>= 1; // 右移一名
count++; // 计数器加1
}
return count; // 返回二进制位数减1
}
这个函数的原理是每次将n
右移一名,同时计数器加1,直到n
不大于1为止。终究返回的就是n
的二进制位数减1。
例如,如果调用lg(8)
,由于二进制表示为1000
,共有4位,因此函数返回3
。
TOP