位與的用法

2021-07-27 10:34:44 字數 721 閱讀 2220

求下面函式的返回值(微軟)

int func(x)

return countx;

}  假定x = 9999。 答案:8

思路:將x轉化為2進製,看含有的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用二進位制表示時最右邊的乙個1)變為0。

判斷乙個數(x)是否是2的n次方

-------------------------------------

#include

int func(int x)

int main()

注: (1)如果乙個數是

2的n次方,那麼這個數用二進位制表示時其最高位為1,其餘位為0。

(2)

==優先順序高於 &

位域的用法

struct a 位域是指資訊在儲存時,並不需要占用乙個完整的位元組,而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有0和1 兩種狀態,用一位二進位即可。為了節省儲存空間,並使處理簡便,c語言又提供了一種資料結構,稱為 位域 或 位段 所謂 位域 是把乙個位元組中的二進位劃分為幾 個不同的...

位域的用法

位域是指資訊在儲存時,並不需要占用乙個完整的位元組,而只需佔幾個或乙個二進位制位。例如在存放乙個開關量時,只有0和1 兩種狀態,用一位二進位即可。為了節省儲存空間,並使處理簡便,c語言又提供了一種資料結構,稱為 位域 或 位段 所謂 位域 是把乙個位元組中的二進位劃分為幾 個不同的區域,並說明每個區...

位域的用法

在結構內宣告位域的形式如下 struct type 整數型別,決定了如何解釋位域的值。型別可以是整型 有符號整型 無符號整型。member name 位域的名稱。width 位域中位的數量。寬度必須小於或等於指定型別的位寬度。帶有預定義寬度的變數被稱為位域。位域可以儲存多於 1 位的數,例如,如果需...