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