面試題(1)

t func(x) 
{ 
    int countx = 0; 
    while (x) 
    { 
        countx ++; 
        x = x&(x -1);
    } 
    return countx; 
}

假設x = 9999, 請問返回值爲多少?



==================================================


答案:8

解答:將x轉化爲2進制,利用按位與的方式,依次推算。


1 9998
2 9990
3 9980
4 9900
5 9800
6 9000
7 8000
8 0000


7 = 0111

8 = 1000

9 = 1001




發佈了4 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章