title: How do you reverse the significant bits of an integer in python?
body: <p>What is the best way to reverse the significant bits of an integer in python and then get the resulting integer out of it?</p>
  
  <p>For example I have the numbers 1,2,5,15 and I want to reverse the bits like so:</p>
  
  <pre><code>original      reversed
  1  - 0001  -  1000 - 8
  2  - 0010  -  0100 - 4
  5  - 0101  -  1010 - 10
  15 - 1111  -  1111 - 15
  </code></pre>
  
  <p>Given that these numbers are 32 bit integers how should I do this in python? The part I am unsure about is how to move individual bits around in python and if there is anything funny about using a 32bit field as an integer after doing so.</p>
  
  <p>PS This isn't homework, I am just trying to program the solution to a logic puzzle.</p>