字节/ Int转换

时间:2015-03-11 04:43:42

标签: java int type-conversion byte

所以我想尝试一个int ex。 3240并转换为打印-88的字节。

        final int x = (int) (buffer[bufferIndex++] * 32767.0);
        System.out.println("1 " + x);
        byteBuffer[i] = (byte) x;
        System.out.println("2 " + (byte) x);
        System.out.println("3 " + (int) byteBuffer[i]);

我在从字节转换回int时遇到问题。我该如何服用-88并再次使其成为3240?

2 个答案:

答案 0 :(得分:3)

关于缩小原始转换的Java Language Specification

  

缩小的原始转换可能会丢失有关的信息   数值的整体幅度,也可能失去精度   范围。

int3240转换为字节值-88时,您在截断的字节中丢失了信息。 int10920也会转换为-88。那么其他int值也会很多。

无法从-88获取3240

答案 1 :(得分:0)

除了Sotorios的回答,这就是你可以为转换做的事情:

byte to int

Byte b = new Byte(NUMBER);
int i = b.intValue();

int to byte

int i = NUMBER;
byte b = (byte) i;