2012-12-13 68 views
1

我是新來的java。我想將十進制值的字節數組轉換爲十六進制字符串。我的輸入字節數組是[0,0,0,0,0,0,1,-28]。我得到00000000000001e4而不是0000001e4。 PLZ幫我解決這個問題在java中將十進制值的字節數組轉換爲十六進制字符串

public static String ConvetToHex(byte[] decValue) 
{ 

    String value = ""; 
    for(int i = 0;i<decValue.length;i++) 
    { 
     value = value+ Integer.toString((decValue[i] & 0xff) + 0x100, 16).substring(1); 
    } 
    return value; 
} 

回答

2

它看起來對我很正確。八個字節應該變成16個十六進制字符。你可以使用

return new BigInteger(1, decValue).toString(16); 

但它會產生相同的輸出。

+0

但有無論如何得到指定的格式..? –

+1

當然你可以,但你會產生一個沒有意義的數字,因爲沒有辦法正確讀取數值。 –

+0

例如,按照您所建議的格式,無法判斷「1001」是「10」還是「01」(應該是)或「10」,「0」,「1」或「1」 0','0','1'。 –

相關問題