我有以下代码:
System.out.println(0b11111111);
System.out.println((byte) 0b11111111);
第一行打印
255
,第二行打印
-1
请有人解释一下为什么结果会有所不同? (byte)
如何将0b11111110
号码变为-1
?
谢谢!
答案 0 :(得分:5)
byte
类型的范围是-128到127.由于255不是有效的字节值,因此当转换为字节时,二进制数11111111
为-1。
如果您未将0b11111111
投射到byte
,则它(默认情况下)仍然是int
,而255是有效的int
值。