2007-12-04 20:13
求下面函式的返回值(微軟) -- 統計1的個數
-------------------------------------
int func(int x)
return countx; }
假定x = 9999
10011100001111
答案: 8
思路: 將x轉化為2進製,看含有的1的個數。
注:每執行一次x = x&(x-1),會將x用二進位制表示時最右邊的乙個1變為0,因為x-1將會將該位(x用二進位制表示時最右邊的乙個1)變為0。
判斷乙個數(x)是否是2的n次方
-------------------------------------
#include
int func(int x)
int main()
注:
(1)如果乙個數是2的n次方,那麼這個數用二進位制表示時其最高位為1,其餘位為0。
(2)== 優先順序高於 &
x x 1 表示式的意義
求下面函式的返回值 微軟 統計1的個數 int func int x return countx 假定x 9999 10011100001111 答案 8 思路 將x轉化為2進製,看含有的1的個數。注 每執行一次x x x 1 會將x用二進位制表示時最右邊的乙個1變為0,因為x 1將會將該位 x用二...
x x 1 表示式的意義
求下面函式的返回值 微軟 統計1的個數 int func int x return countx 假定x 9999 10011100001111 答案 8 思路 將x轉化為2進製,看含有的1的個數。注 每執行一次x x x 1 會將x用二進位制表示時最右邊的乙個1變為0,因為x 1將會將該位 x用二...
x x 1 表示式的意義
求下面函式的返回值 微軟 統計1的個數 int a 65536 1024 8 1 int c getc a system.out.println c 將x轉化為2進製,看含有的1的個數。注 每執行一次x x x 1 會將x用二進位制表示時最右邊的乙個1變為0,因為x 1將會將該位 x用二進位制表示時...