bool hasAlternatingBits(int n) {
string str="";
while(n){
str+=to_string(n&1);
n>>=1;
}
return (str.find("00")==string::npos)&&(str.find("11")==string::npos);
}
bool hasAlternatingBits(int n) {
string str="";
int pre=2;
while(n){
int a=n&1;
if(pre==a) return false;
pre=a;
n>>=1;
}
return true;
}
^异或
bool hasAlternatingBits(int n) {
int next=n&1;
while((n&1)==next){
next^=1;
n>>=1;
}
return n==0;
}
检测某个整数的二进数数是否是全一:此数和加一后的数相与是否为0:为0则此数的二进制为全一。
bool hasAlternatingBits(int n) {
return ((n+(n>>1)+1)&(n+(n>>1)))==0;
}
+的运算符优先级大于>>的优先级
c中运算符的优先级