Int到字节数组 - 字节移位

时间:2015-10-27 17:26:58

标签: java arrays bytearray

我试图将int(最大65535)转换为两个字节的数组。 在C中我使用了uint16,但Java并不知道任何无符号值。

要将字节转换为数组,我尝试使用它:

byte[] data = { (byte) ((num >> 8) & 0xff), (byte) (num & 0xff) };

但我只得到:[63,-49]而不是:[63,207],如果我用16335作为值。 有没有办法在Java中做到这一点?

我需要字节数组中的这个无符号字节使用输出流

发送它

1 个答案:

答案 0 :(得分:0)

你可以使用java的NIO的ByteBuffer:

byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array();

for (byte b : bytes) {
    System.out.println(Byte.toUnsignedInt(b));
}

希望现在能起作用;)