Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.
Example 1:
Input: 5 Output: True Explanation: The binary representation of 5 is: 101
Example 2:
Input: 7 Output: False Explanation: The binary representation of 7 is: 111.
Example 3:
Input: 11 Output: False Explanation: The binary representation of 11 is: 1011.
Example 4:
Input: 10 Output: True Explanation: The binary representation of 10 is: 1010.
大致意思是如果一个数的二进制相邻两位不相同,则返回true,否则返回false
思路如下,进行十进制转二进制操作,判断相邻两位是否一样
public boolean hasAlternatingBits(int n) { while(n>1) { int temp = n%2; int temp1 = (n/2)%2; if(temp==temp1) { return false; } n=n/2; } return true; }