title: why is 1>>32 == 1?
body: <p>I'm wondering if perhaps this is a JVM bug?</p>
  
  <p>java version "1.6.0_0"
  OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu13)
  OpenJDK 64-Bit Server VM (build 14.0-b08, mixed mode)</p>
  
  <pre><code>class Tmp {
      public static void main(String[] args) {
          System.out.println("1&gt;&gt;1 = "+(1&gt;&gt;1));
          System.out.println("1&gt;&gt;2 = "+(1&gt;&gt;2));
          System.out.println("1&gt;&gt;31 = "+(1&gt;&gt;31));
          System.out.println("1&gt;&gt;32 = "+(1&gt;&gt;32));
          System.out.println("1&gt;&gt;33 = "+(1&gt;&gt;33));
      }
  }
  </code></pre>
  
  <p>produces this when I run it:</p>
  
  <pre><code>1&gt;&gt;1 = 0
  1&gt;&gt;2 = 0
  1&gt;&gt;31 = 0
  1&gt;&gt;32 = 1 &lt;---------- should be 0 i think
  1&gt;&gt;33 = 0
  </code></pre>
  
  <p>I also get the same results for any multiple of 32.</p>
  
  <p>do I need to write my own right-shift to check for this?</p>