为什么字节 b = (字节) 0xFF 等于整数 -1?
2022-09-01 22:45:05
为什么等于 ?byte b = (byte) 0xFF
integer
-1
前任:
int value = byte b = (byte) 0xFF;
System.out.println(value);
它会打印吗?-1
为什么等于 ?byte b = (byte) 0xFF
integer
-1
前任:
int value = byte b = (byte) 0xFF;
System.out.println(value);
它会打印吗?-1
b
在确定要调用的 重载 时提升为 。int
system.out.println
Java 中的所有字节都经过签名。
有符号字节表示值 。这是因为 Java 使用 two 的补码来表示有符号值。有符号字节表示,因为它的最高有效位是(因此它表示负值),并且其值为 。0xff
-1
0xff
-1
1
-128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = -1