求下面函式的返回值(微軟)
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 位的數,例如,如果需...