我想以字符串和字节数组格式将十进制-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;
}
所以也不确定它是否适用于减去十六进制值。
答案 0 :(得分:0)
要将十六进制转换为您期望的String
,-10
转换为-a
,请使用:
String hex = Integer.toString(-10, 16);
要转换为byte
数组,只需将int
转换为byte
数组,其表示方式相同:
byte[] bytes = ByteBuffer.allocate(4).putInt(-10).array();