[英]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==1
是n & (1==1)
,而 1==n&1
是(1==n) & 1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.