剑指Offer刷题(二进制中1的个数) 一.题目描述二.代码(C++)三.提交记录四.备注 一.题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 二.代码(C++) class Solution { public: int NumberOf1(int n) { int count = 0; while(n) { count++; n = n & (n-1); } return count; } }; 三.提交记录 四.备注 当一个数与自己减一的数做与运算时,结果就是去除最低位1后的数字。