2014-02-15 225 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.

相关问题