1. 程式人生 > >[劍指offer] 二進制中1的個數

[劍指offer] 二進制中1的個數

des offer 表示 其中 signed 輸出 一位 bottom tmp

題目描述

輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼表示。

關鍵詞:補碼,

x&1計算x二進制的最後一位

遍歷一次即可:

class Solution {
public:
     int  NumberOf1(int n) {
         unsigned tmp = n;
         int re = 0;
         while (tmp) {
             re += tmp&1;
             tmp = tmp>>1;
         }
         return re;
     }
};

[劍指offer] 二進制中1的個數