问题描述
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。问题分析
当然是用STL大法了,直接看代码吧。(需要头文件< bitset >哟)- 代码实现
class Solution {
public:
int NumberOf1(int n) {
return bitset<sizeof(n)*8>(n).count();
}
};
下面来说一下这一句关键代码的意思:
bitset< sizeof(n)*8 >(n).count();
sizeof(n)*8表示有4*8=32个比特位
n表示把int型参数n存到bitset中
count( )函数就是求在bitset中1的个数