求int型資料在記憶體中儲存時1的個數

2021-07-11 08:49:11 字數 664 閱讀 1725

輸入乙個int型資料,計算出該int型資料在記憶體中儲存時1的個數。

輸入描述:

輸入乙個整數(int型別)

輸出描述:

這個數轉換成2進製後,輸出1的個數

#includeusing namespace std;

int c1 = 0x55555555;

int c2 = 0x33333333;

int c3 = 0x0f0f0f0f;

int c4 = 0x00ff00ff;

int c5 = 0x0000ffff;

int main(void)

另一種解法:程式設計之美上的解法

首先提出乙個問題:怎麼判斷給定的二進位制數裡面有且僅有乙個1呢?可以通過判斷這個數是否為2的整數次冪來實現。另外,如果只和這乙個「1」進行判斷,如何設計操作呢?我們知道,如果進行這個操作,結果為0或1,就可以得出結論。

如果希望操作結果為0,0100可以和0011進行「與」操作。

這樣進行的操作就是0100 & (0100 - 0001) = 0;

#includeusing namespace std;

int main(void)

cout << count << endl;

return 0;

}

求int型資料在記憶體中儲存時1的個數

1.求int型資料在記憶體中儲存時1的個數 輸入乙個int型資料,計算出該int型資料在記憶體中儲存時1的個數。我們很容易想到如下方法 include using namespace std int main cout 在對 進行測試時輸入負數無法得出結論,下面的方法將解決這一問題。include ...

華為OJ 求int型資料在記憶體中儲存時1的個數

求int 型資料在記憶體中儲存時 1的個數 輸入乙個int 型資料,計算出該 int型資料在記憶體中儲存時 1的個數。輸入描述 輸入乙個整數 int型別 輸出描述 這個數轉換成 2進製後,輸出 1的個數 輸入例子 5 輸出例子 2 解答 include include include include...

華為OJ 求int型資料在記憶體中儲存時1的個數

描述 輸入乙個int型資料,計算出該int型資料在記憶體中儲存時1的個數。知識點字串,查詢 執行時間限制 10m記憶體限制 128輸入 輸入乙個整數 int型別 輸出這個數轉換成2進製後,輸出1的個數 樣例輸入 5樣例輸出 2 思路 如果整數n的二進位制中有k個1,則需要迴圈k次,方法是不斷清除二進...