2014-02-15 224 views
0

我嘗試這樣做:十六進制轉換爲二進制

String x = "He34llo"; 
int i = Integer.parseInt(x, 16); 
String xx = Integer.toBinaryString(i); 

但我得到一個exception in thread "main" java.lang.NumberFormatException: For input string: "He34llo"

任何想法?

+3

你知道嗎?十六進制是? (以及它是如何表示的) –

回答

0

He34llo不是有效的十六進制數,因此在嘗試將其轉換爲一個時會出錯。

1

H,lo是無效的十六進制數字。

1

只有從0到9的數字和A,B,C,D,E,F是有效的十六進制字符。

有關十六進制數字的更多信息,請參閱Wikipedia: Hexadecimal

+0

0-9也是十六進制數字 – Warlord

+0

我認爲這很明顯,但是。但這可能不是這種情況... – Kuchi

1

簡而言之:您的要求是不可行的。

說明:

String x = "He34llo"; 

,因爲它包含無效的數字不能轉換爲十六進制。

十六進制可以有以下幾點:0,1,2,3,4,5,6,7,8,9,A,B,C,d,E和F

在你的情況下無效信爲H,l和O.

0

0 - 隱蔽字符串 ==>二進制嘗試:(字符串=>六十進制==>十進制==>二進制數

1 - 轉換字符串十六進制dec進制在Java:

public String toHex(String arg) { 
    return String.format("%x", new BigInteger(1, arg.getBytes(/*YOUR_CHARSET?*/))); 
} 

2 - 六十進制編號以十進制在Java中

int decimal = Integer.parseInt(hexadecimal, 16); 

3轉換 - 轉換十進制編號以二進制在Java中

String binary = Integer.toBinaryString(decimal); 

PS:十六進制可以有以下內容:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E和F.

相關問題