如何将负十六进制值转换为String和byte数组

时间:2014-11-06 12:18:41

标签: java string hex

我想以字符串和字节数组格式将十进制-10值转换为十六进制。

我试过了

String minHex = Integer.toHexString(Integer.valueOf(-10));
System.out.println(minHex);

导致 fffffff6 ,我认为这是不正确的。并且为了转换字节数组,我正在使用我从

找到的函数

Convert a string representation of a hex dump to a byte array using Java?

public static byte[] hexStringToByteArray(String s) {
        int len = s.length();
        byte[] data = new byte[len / 2];
        for (int i = 0; i < len; i += 2) {
            data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                                 + Character.digit(s.charAt(i+1), 16));
        }
        return data;
}

所以也不确定它是否适用于减去十六进制值。

1 个答案:

答案 0 :(得分:0)

要将十六进制转换为您期望的String-10转换为-a,请使用:

String hex = Integer.toString(-10, 16);

要转换为byte数组,只需将int转换为byte数组,其表示方式相同:

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