题目来源:leetcode
Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.
翻译:
给一个正数,检查它的二进位是否交替出现。
如5:则是101 .,返回正确
10:1010,返回正确
11:1011.返回错误。
c++:
class Solution {
public:
bool hasAlternatingBits(int n) {
return !((n ^= n/2) & n+1);
}
};