title: Bitwise operations equivalent of greater than operator
body: <p>I am working on a function that will essentially see which of two ints is larger. The parameters that are passed are <code>2</code> 32-bit ints. The trick is the only operators allowed are <code>! ~ | &amp; &lt;&lt; &gt;&gt; ^</code> (no casting, other data types besides signed int, *, /, -, etc..).</p>
  
  <p>My idea so far is to <code>^</code> the two binaries together to see all the positions of the <code>1</code> values that they don't share. What I want to do is then take that value and isolate the <code>1</code> farthest to the left.  Then see of which of them has that value in it. That value then will be the larger.
  (Say we use 8-bit ints instead of 32-bit).
  If the two values passed were <code>01011011</code> and <code>01101001</code>
  I used <code>^</code> on them to get <code>00100010</code>.
  I then want to make it <code>00100000</code> in other words <code>01xxxxxx -&gt; 01000000</code>
  Then <code>&amp;</code> it with the first number
  <code>!!</code> the result and return it. 
  If it is <code>1</code>, then the first <code>#</code> is larger.</p>
  
  <p>Any thoughts on how to <code>01xxxxxx -&gt; 01000000</code> or anything else to help?</p>
  
  <p>Forgot to note: no ifs, whiles, fors etc...</p>