title: why don't extend 0b10101010 to 4bytes(Int) automatically when doing right shift operation
body: <p>here's a piece of code:</p>
  
  <pre><code>byte c = (byte) (0b10101010);
  byte d = (byte) (c &gt;&gt; 1);
  System.out.println(d);
  </code></pre>
  
  <p>The result is -85. (I know the reason because the byte c extends to int automatically before doing right shift operation(higher 3 bytes all make up 1))</p>
  
  <p>here's another piece of code:</p>
  
  <pre><code>byte c = (byte) (0b10101010 &gt;&gt; 1);
  System.out.println(c );
  </code></pre>
  
  <p>The result is 85. so my question is before doing right shift operation, why the binary code (0b10101010 don't extends to int (ff, ff, ff, 0b10101010) as if the upper piece code?)</p>