我想將十進制-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