Java中有符号和无符号字节之间没有区别。以下两个都将为字节分配相同的值:
byte i = (byte)160;byte j = (byte)-96;
作为开发人员,由您决定将它们打印时视为已签名还是未签名。默认设置是将它们打印为带符号,但是您可以通过以无符号方式将它们转换为整数来强制将它们打印为无符号。
System.out.println(i); // -96System.out.println(0xff&i); // 160
如果您想知道字节如何同时表示负数和正数,请阅读有关Java的二进制补码算法的文章。



