# Reverse Bitsby Isai Damier, Android Engineer @ Google

```#======================================================================
# Author: Isai Damier
# Title: Reverse Bits of int (32-bit)
# Project: geekviewpoint
# Package: algorithms
#
# Statement:
#   Given an integer, reverse its bit sequence.
#
# Sample Input:  00000000000000001111111111111110
# Sample Output: 01111111111111110000000000000000
#
# Technical Details:
#   It is necessary to know whether the decimal number being passed as
#   input is of type byte (8-bit) or short (16-bit) or  (32-bit) or
#   instance, if x = 0011010, Python will trim it to 11010 and then
#   cause the reverse to look like 1011. Under such circumstances the
#   reverseBits operation would not be reversible.
#
#   To keep things simple, the presented algorithm treats  (32-bit)
#   inputs.
#======================================================================
def reverseBitsOfInt( x ):
size = 32
y = 0
position = size - 1
while position > 0:
y += ( ( x & 1 ) << position )
x >>= 1
position -= 1

return y```
```import unittest
from algorithms import bitwise as bits

class Test( unittest.TestCase ):

def testReverseBitsOfInt( self ):
a = "00000000000000001111111111111110"
b = "01111111111111110000000000000000"
x = int( a, 2 )
r = int( b, 2 )
self.assertEquals( r, bits.reverseBitsOfInt( x ) )
self.assertEquals( x, bits.reverseBitsOfInt( r ) )
```