【发布时间】:2015-10-21 02:04:50
【问题描述】:
我有以下代码:
int i =128;
byte b = (byte) i;
System.out.println( Integer.toBinaryString(i)); //10000000
System.out.println( Integer.toBinaryString(b)); //11111111111111111111111110000000
有人能解释一下为什么在从整数转换为字节时左边加了 1,一个字节怎么能携带超过 8 位!?
【问题讨论】:
-
Integer#toBinaryString接受int,而不是byte。byte值被扩大到int。
标签: java binary bit-manipulation