title: Why does the xor operator on two bytes produce an int?
body: <pre><code>        //key &amp; hash are both byte[]
          int leftPos = 0, rightPos = 31;
          while(leftPos &lt; 16) {
              //possible loss of precision. required: byte, found: int
              key[leftPos] = hash[leftPos] ^ hash[rightPos];
              leftPos++;
              rightPos--;
          }
  </code></pre>
  
  <p>Why would a bitwise operation on two bytes in Java return an int? I know I could just cast it back to byte, but it seems silly.</p>