问题描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 思路描述 直接利用计算自带的转换方式,unsigned可以把负数转换成原码,其余的就是正常求解了。 AC代码 class Solution { public: int NumberOf1(int n) { unsigned num = n, sum = 0; while(num) { if(num % 2) { ++sum; } num /= 2; } return sum; } };