懦弱大米

文章
8
资源
0
加入时间
2年10月21天

剑指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) &