我想将十进制-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;
}
所以还不能肯定它会为零下十六进制值或无法找到工作。
你的结果是二进制补码形式 - 这样做(0000 0000 0000 0000 0000 0000 0000 1010)考虑一个32位整数的二进制数。现在取所有数字的倒数(1111 1111 1111 1111 1111 1111 1111 0101),并将结果加1。你会得到你fffffff6以上的东西。它已签署。 – ha9u63ar 2014-11-06 12:29:57