簡體   English   中英

差異b / w 1 == n&1和n&1 == 1,n是無符號整數

[英]the difference b/w 1==n&1 and n&1==1 , n is an unsigned int

這是來自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;
}

這很完美,但是

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

這個有時候不能工作! 我想如果用uint32_t計算出來有問題,但我無法理解這一點。

==優先級高於& 從而,

  • n&1==1n & (1==1) ,而
  • 1==n&1(1==n) & 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM