在java中将十六进制转换为二进制

时间:2014-02-15 23:35:36

标签: java

我尝试做:

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"

5 个答案:

答案 0 :(得分:1)

Hlo不是有效的十六进制数字。

答案 1 :(得分:1)

只有0到9之间的数字以及A,B,C,D,E,F是有效的十六进制字符。

有关十六进制数字的详细信息,请参阅Wikipedia: Hexadecimal

答案 2 :(得分:1)

简而言之:您的要求是不可能的。

说明:

String x = "He34llo";

无法转换为十六进制,因为它包含无效数字。

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

在您的情况下,无效字母为H,l和O。

答案 3 :(得分:0)

He34llo不是有效的十六进制数,因此在尝试将其转换为1时会出错。

答案 4 :(得分:0)

0 - 隐藏字符串 ==> 二进制试试这个:( String => Hexa decimal ==> Decimal ==> Binary number

1 - 在java中将字符串转换为 Hexa十进制

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

2 - 在Java中将 Hexa十进制数字转换为十进制

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. < / p>