Given a non-negative integer N, reverse the bits of N and print the number obtained after reversing the bits.
Note: actual binary representation of the number is being considered for reversing the bits, no leading 0’s are being considered.
Example
Input: 11
Output: 13
(11)10 = (1011)2.
Reversing the bits:
(1101)2 = (13)10.
Input: 12
Output: 3
(12)10 = (1100)2.
Reversing the bits:
(0011)2 = (3)10.
package com.microsoft.set166;
/**
* Reverse actual bits of the given non-negative integer n.
*
* @author rajesh dixit
* @since May 2, 2018 12:55:36 PM
*/
public class ReverseBits {
/**
* Method reverse the Bits to form a new number.
*
* @param value
* @return reversed number
*/
private static int getReverseBitNumber(int value) {
int rev = 0;
while (value > 0) {
int lastBit = value & 1;
rev = rev << 1;
rev = rev | lastBit;
value = value >> 1;
}
return rev;
}
/**
* Driver method
*
* @param args
*/
public static void main(String[] args) {
int value = 14;
int revValue = getReverseBitNumber(value);
System.out.println(revValue);
}
}
No comments:
Post a Comment