溫馨提示×

c語言lg函數(shù)如何表示

小億
331
2023-11-29 03:33:18
欄目: 編程語言

在C語言中,可以使用lg函數(shù)來表示一個數(shù)的二進(jìn)制位數(shù)減1。一種常見的實(shí)現(xiàn)方式如下:

int lg(int n) {
    int count = 0;  // 計(jì)數(shù)器,記錄二進(jìn)制位數(shù)減1
    while (n > 1) { // 當(dāng)n大于1時,繼續(xù)右移
        n >>= 1;    // 右移一位
        count++;    // 計(jì)數(shù)器加1
    }
    return count;   // 返回二進(jìn)制位數(shù)減1
}

這個函數(shù)的原理是每次將n右移一位,同時計(jì)數(shù)器加1,直到n不大于1為止。最終返回的就是n的二進(jìn)制位數(shù)減1。

例如,如果調(diào)用lg(8),由于二進(jìn)制表示為1000,共有4位,因此函數(shù)返回3。

0