# [Leetcode 693] Binary Number with Alternating Bits

Oct 4, 2021

--

**Description:**

Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.

**Example 1:**

**Input:** n = 5

**Output:** true

**Explanation:** The binary representation of 5 is: 101

**Example 2:**

**Input:** n = 7

**Output:** false

**Explanation:** The binary representation of 7 is: 111.

**Example 3:**

**Input:** n = 11

**Output:** false

**Explanation:** The binary representation of 11 is: 1011.

**Example 4:**

**Input:** n = 10

**Output:** true

**Explanation:** The binary representation of 10 is: 1010.

**Example 5:**

**Input:** n = 3

**Output:** false

**Constraints:**

`1 <= n <= 231 - 1`

**C code solution:**

`bool hasAlternatingBits(int n){`

int prev = n&1;

n = n >> 1;

while(n){

if(prev == (n&1)){

return false;

}

prev = n & 1;

n = n >> 1;

}

return true;

}