在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
。