如何从十六进制值创建byte []?

时间:2015-07-28 14:50:08

标签: java

我有以下数值:

public static short TAG_VALUE1 = 0x2E09;
public static short TAG_VALUE2 = 0x2E0D;

我想从两个值创建byte[]。作为一个字节数组,我必须得到第一个字节并将其插入到数组中,然后插入每个TAG的第二个字节。我试图转换为字符串然后返回,但我认为这是一种更容易的方法。

如何在byte[]看起来像这样?

  

2E 09 2E 0D

2 个答案:

答案 0 :(得分:4)

怎么样

byte[] foo = new byte[] {
    (byte) (TAG_VALUE1>>8),
    (byte) (TAG_VALUE1),
    (byte) (TAG_VALUE2>>8),
    (byte) (TAG_VALUE2),
};

答案 1 :(得分:2)

请参阅ByteBuffer及其众多用途。

byte[] bytes = new byte[4];
ByteBuffer buf = ByteBuffer.wrap(bytes);
buf.putShort(TAG_VALUE1);
buf.putShort(TAG_VALUE2);