小言_互联网的博客

具有交替位的二进制数

282人阅读  评论(0)

给一个正整数,检查它的二进制表示是否具有交替位:即,两个相邻的位总是具有不同的值。

样例

样例 1:

输入: 5
输出: True
解释:
5 的二进制表示为: 101

样例 2:

输入: 7
输出: False
解释:
7 的二进制表示为: 111.

样例 3:

输入: 11
输出: False
解释:
11 的二进制表示为: 1011.

样例 4:

输入: 10
输出: True
解释:
10 的二进制表示: 1010.

 

class Solution {
public:
    /**
     * @param n: a postive Integer
     * @return: if two adjacent bits will always have different values
     */
    bool hasAlternatingBits(int n) {
        // Write your code here
        n = n ^ (n>>1);
        return (n & n+1) == 0;
    }
};

 


转载:https://blog.csdn.net/weixin_41791402/article/details/100007796
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场