字节转换为int

时间:2015-07-22 21:26:16

标签: java binary byte bit

在Java中,我创建了一个只包含'on'位的字节,所以:

    byte a = (byte) 0xff;
    System.out.println(a);

然而,当打印时,我得到结果-1而不是255(= 15 * 16 + 15)。我知道整数中的第一位是符号,但整数是32位,而这个字节只有8位。

如果我使用以下代码,则会给出预期结果:

    byte a = (byte) 0xff;
    System.out.println(a & 0xff);

这真让我感到惊讶!一个字节的按位和操作如何突然返回不同的结果?任何人都可以解释这种影响吗?

0 个答案:

没有答案