剑指offer-JZ11-二进制中1的个数
题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。思路:考察位运算,最优做法:把一个整数减去1再与原来的整数做位与运算,得到的结果相当于把整数的二进制表示中最右边的1变成0.这样有多少个1就循环多少次C++class Solution {public: int NumberOf1(int n) { int cnt = 0; while(n){ n = (n - 1) &