Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

bitwise

Check if the binary representation of a number is a palindrome

Ravi

Problem statement

Given a number n, check if the binary representation of n is a palindrome.

Example 1:

  • Input: n=5
  • Output: Yes

The binary representation of 5 is 101, which is a palindrome.

Example 2:

  • Input: n=10
  • Output: No

The binary representation of 10 is 1010 which is not a palindrome.

Solution

The algorithm is straightforward. Find the reverse binary representation of n and compare it with the binary representation of n.

Code example

Let’s look at the code below:

class Main{

    public static int findReverse(int n){
        int reverse_bin = 0;

        int temp = n;
        while (temp > 0) {
            reverse_bin = (reverse_bin << 1) | (temp & 1);
            temp = temp >> 1;
        }
        return reverse_bin;
    }

    public static boolean isPalindrome(int n) {
        return n == findReverse(n);
    }

    public static void main(String[] args) {
        int n = 10;
        System.out.println("Is binary representation of " + n + " a palindraome? " + (isPalindrome(n)?"Yes":"No"));
    }
}
Try it out!

Code explanation

  • Lines 3 to 12: We reverse the computed binary number.
  • Lines 14 to 16: We compare the reverse and original binary numbers.
  • Lines 19 and 20: We set a binary number and call the isPalindrome() method.

RELATED TAGS

bitwise
RELATED COURSES

View all Courses

Keep Exploring