3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
bool IsPowerOfTwo(ulong x){ return (x & (x - 1)) == 0;}
true
0
2
bool IsPowerOfTwo(ulong x){ return (x != 0) && ((x & (x - 1)) == 0);}
解釋
二進(jìn)制&運(yùn)算符是為積分類(lèi)型和bool預(yù)定義的。對(duì)于整型,計(jì)算邏輯位數(shù)及其操作數(shù)。對(duì)于bool操作數(shù),&計(jì)算邏輯和它的操作數(shù);也就是說(shuō),結(jié)果是真的當(dāng)且僅當(dāng)它的兩個(gè)操作數(shù)都是真的。
bool b = IsPowerOfTwo(4)
return (4 != 0) && ((4 & (4-1)) == 0);
((4 & (4-1)) == 0)
((4 & 3) == 0)
4&3
?
100 = 4011 = 3
&
1 & 1 = 1
, 1 & 0 = 0
, 0 & 0 = 0
0 & 1 = 0
100011----000
return (4 != 0) && ((4 & 3) == 0);
return true && (0 == 0);
return true && true;
true && true
true
添加回答
舉報(bào)