计算机中数据以二进制形式存储,正数以原码形式存储,负数以补码形式存储,
int整型,占四个字节,每个字节8位,共32个二进制位。
将所给的数字n依次与index=1相与,并且将index逐次左移,如果相与不为0,则表示n的此位为1,否则为0。
代码如下:
class Solution {
public:
int NumberOf1(int n) {
int sum=0;
int index=1;
while(index!=0)
{
if((n&index)!=0)
{
sum++;
}
index=index<<1;
}
return sum;
}
};