For this Question: Given two positive integers X and Y, check if one integer is obtained by rotating bits of other.

Bit Rotation: A rotation (or circular shift) is an operation similar to shift except that the bits that fall off at one end are put back to the other end.The only line of input contains two integers X and Y

0 <= X, Y <= 2^32 - 1

The numbers are in 32-bit formatPrint "Yes" if its possible otherwise print "No"Sample Input: 
8 1
Output:
Yes

Explanation :
Represntation of X = 8 : 0000 0000 0000 0000 0000 0000 0000 1000
Represntation of Y = 1 : 0000 0000 0000 0000 0000 0000 0000 0001
If we rotate X by 3 units right we get Y, hence answer is Yes, I have written this Solution Code: import java.io.*;
import java.util.*;



class Main {
   static boolean isRotation(long x, long y) {
        int i = 32;
        while (i-- > 0) {
            long lastBit = (x & 1);
            x >>= 1;
            x |= (lastBit << 31);
            if(x == y){
                return true;
            }
        }
        return false;
    }
public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str[] = br.readLine().strip().split(" ");
        long x = Long.parseLong(str[0]);
        long y = Long.parseLong(str[1]);

        if (isRotation(x, y)) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    }
}, In this Programming Language: Java, Now tell me if this Code is compilable or not?