链接:
https://leetcode-cn.com/problems/binary-number-with-alternating-bits/
描述:
示例:
代码:
class Solution {
public:
bool hasAlternatingBits(int n) {
long a = n ^ (n >> 1);
return (a & (a + 1)) == 0;
}
};
代码分析:
这个题的目的:让我们判断一个数的二进制是否位101010…
10101010…>>1= 010101…
101010…^01010101… = 11111111111
11111111+1 = 100000000
1000000000 & 11111111111 = 0