最赞回答 / 是王小二呀
byte是1字节8 位,也就是最大255(11111111),但是Java会认为最高位代表的是符号位,所以byte识别的最大数位(x1111111)也就是127,一旦超过这个数,比如128(10000000),java 就会以补码形式存储,也就是128存为(11111111),1代表-则128存为-127,所以:将 byte 数组中的值与 0xFF 按位与(&),过程中 byte 会隐式类型转换为 int,当与 0xFF 按位与的时候,会将除了低 8 位的其他位全部置 0,这样将符号扩展的那些高位...
2015-12-06