【发布时间】:2018-08-02 17:07:11
【问题描述】:
public void int2byte(){
int x = 128;
byte y = (byte) x;
System.out.println(Integer.toHexString(y));
}
我得到了结果 ffffff80,为什么不是 80? 当 x = 127 时,我得到了结果 7f。
【问题讨论】:
-
因为
toHexString()需要int参数,所以有符号byte使用符号扩展扩展为int。 -
127(int) = -128(byte) = -128(int) = 0xffffff80(int)