我试图将int(最大65535)转换为两个字节的数组。 在C中我使用了uint16,但Java并不知道任何无符号值。
要将字节转换为数组,我尝试使用它:
byte[] data = { (byte) ((num >> 8) & 0xff), (byte) (num & 0xff) };
但我只得到:[63,-49]而不是:[63,207],如果我用16335作为值。 有没有办法在Java中做到这一点?
我需要字节数组中的这个无符号字节使用输出流
发送它答案 0 :(得分:0)
你可以使用java的NIO的ByteBuffer:
byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array();
for (byte b : bytes) {
System.out.println(Byte.toUnsignedInt(b));
}
希望现在能起作用;)