## Thursday, 3 May 2018

### Algorithms | Reverse actual bits of the given number

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);
}
}