2017-02-11 18 views
-3

我正在尋找將整數值(如22,32,42)轉換爲相應的僞十六進制值(如0x22,0x32,0x42)的方法。 任何人都可以有這種類型的問題的解決方案?將整數轉換爲java中的字節

+0

你是什麼意思假十六進制? – weston

+0

你的意思是把十進制數字當作十六進制嗎? – weston

+2

呃,'「0x」+ value'? – radoh

回答

1

如果你只是想追加的0X:"0x"+value。如果要將整數轉換爲適合該十六進制值的數字

String temp = Integer.toString(value); 
int asHex = Integer.valueOf(temp, 16); 
+0

沒有方法String.parseInt()!!你的意思是Integer.parseInt()? – Alireza

+0

我的意思是integer.valueOf。我的語言困惑了一分鐘 –

+0

和我的一樣,你真的會推薦通過一個字符串嗎? – weston

0

我不知道你爲什麼要這個,看起來很奇怪,你不會輸出0xA0xF(因爲它不能在輸入中),但是在這裏它是無論如何,我希望它至少可以幫助你現貨可能的漏洞在你的方法:

public static int fakeHex(int i) { 
    int result = 0; 
    int base = 1; 
    while (i > 0) { 
     int decimalDigit = i % 10; 
     result += base * decimalDigit; 
     i /= 10; 
     base *= 16; 
    } 
    return result; 
} 

測試用例:

@Test 
public void fake_hex_test() { 
    assertEquals(0x0, fakeHex(0)); 
    assertEquals(0x9, fakeHex(9)); 
    assertEquals(0x22, fakeHex(22)); 
    assertEquals(0x32, fakeHex(32)); 
    assertEquals(0x42, fakeHex(42)); 
    assertEquals(0x123, fakeHex(123)); 
}