byte只有8个二进制位,取值0~255。1104明显溢出了。

解决方案 »

  1.   

    一个byte 69的二进制是 01000101,a<<4后是01010000,即十进制的80
    一个int 69的二进制是 00000000 00000000 00000000 01000101(4个字节),a<<4后是 0000 00000000 00000000 010001010000,得到十进制的1104
      

  2.   

    byte左移后超出8位的数据就丢失了,右移回来不足的都是填0的。