AcWing 26 二進位制中1的個數

2021-09-22 02:11:38 字數 547 閱讀 5128

輸入乙個32位整數,輸出該數二進位制表示中1的個數。

注意

樣例1

輸入:9

輸出:2

解釋:9的二進位制表示是1001,一共有2個1。

樣例2

輸入:-2

輸出:31

解釋:-2在計算機裡會被表示成11111111111111111111111111111110,

一共有31個1。

這道題有個難點是如何處理負數。在c++中如果我們右移乙個負整數,系統會自動在最高位補1,這樣會導致 n 永遠不為0,就死迴圈了。解決辦法是把 n 強制轉化成無符號整型,這樣 n 的二進位制表示不會發生改變,但在右移時系統會自動在最高位補0。轉化為無符號整型後用 un 表示。把un和1做與運算,算出的是un的最後一位,將結果加到ans中,然後將un右移一位,繼續剛才的操作,直到un為0退出迴圈,返回ans。

class solution 

return ans;

}};

二進位制 二進位制中1的個數

題目 請實現乙個函式,輸入乙個整數,輸出該數二進位制表示中 1 的個數。例如,把 9 表示成二進位制是 1001,有 2 位是 1。因此,如果輸入 9,則該函式輸出 2。示例 1 輸入 00000000000000000000000000001011 輸出 3 解釋 輸入的二進位制串 0000000...

AcWing 801 二進位制中1的個數

給定乙個長度為n的數列,請你求出數列中每個數的二進位制表示中1的個數。輸入格式 第一行包含整數n。第二行包含n個整數,表示整個數列。輸出格式 共一行,包含n個整數,其中的第 i 個數表示數列中的第 i 個數的二進位制表示中1的個數。資料範圍 1 n 100000,0 數列中元素的值 109 樣例輸入...

python二進位制數加1 二進位制中為1的位數

二進位制中為1的位數 題目要求 給定乙個整數,請計算二進位制中為1的位數 輸入 13 輸出 3 解釋 13的二進位制表示是 1101,位為1的數量是3 思路分析 如果乙個數是奇數,那麼它的二進位制的最後一位一定是1,道理很簡單,其他的位都表示2n 只有最後一位表示20 我們可以利用最後一位是否為1來...