x x 1 表示式的意義

2021-05-26 06:28:07 字數 568 閱讀 7726

求下面函式的返回值(微軟) -- 統計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 表示式的意義

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變...

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用二進位制表示時...