相关疑难解决方法(0)

差异b/w 1 == n&1和n&1 == 1,n是无符号整数

这是来自leetcode程序问题.它给出一个unsigned int n,要求你返回位'1'的数字;

int hammingWeight(uint32_t n) {
int num=0;
for(;n!=0;n=n>>1)
{
    if(n&1==1)
    {
        num++;
    }
}
return num;
}
Run Code Online (Sandbox Code Playgroud)

这很完美,但是

int hammingWeight(uint32_t n) {
int num=0;
for(;n!=0;n=n>>1)
{
    if(1==n&1)
    {
        num++;
    }
}
return num;
}
Run Code Online (Sandbox Code Playgroud)

这个有时候不能工作!我想如果用uint32_t计算出来有问题,但我无法理解这一点.

c c++ operator-precedence

2
推荐指数
1
解决办法
164
查看次数

标签 统计

c ×1

c++ ×1

operator-precedence ×1