Java 整数到字节数组
我得到了一个整数:1695609641
当我使用方法时:
String hex = Integer.toHexString(1695609641);
system.out.println(hex);
给:
6510f329
但我想要一个字节数组:
byte[] bytearray = new byte[] { (byte) 0x65, (byte)0x10, (byte)0xf3, (byte)0x29};
我该怎么做?
我得到了一个整数:1695609641
当我使用方法时:
String hex = Integer.toHexString(1695609641);
system.out.println(hex);
给:
6510f329
但我想要一个字节数组:
byte[] bytearray = new byte[] { (byte) 0x65, (byte)0x10, (byte)0xf3, (byte)0x29};
我该怎么做?
使用Java NIO的ByteBuffer非常简单:
byte[] bytes = ByteBuffer.allocate(4).putInt(1695609641).array();
for (byte b : bytes) {
System.out.format("0x%x ", b);
}
输出:
0x65 0x10 0xf3 0x29
怎么样:
public static final byte[] intToByteArray(int value) {
return new byte[] {
(byte)(value >>> 24),
(byte)(value >>> 16),
(byte)(value >>> 8),
(byte)value};
}
这个想法不是我的。我从 dzone.com 的一些帖子中摘录了它。