我尝试这样做:十六进制转换为二进制
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"
任何想法?
我尝试这样做:十六进制转换为二进制
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"
任何想法?
He34llo
不是有效的十六进制数,因此在尝试将其转换为一个时会出错。
H
,l
和o
是无效的十六进制数字。
只有从0到9的数字和A,B,C,D,E,F是有效的十六进制字符。
有关十六进制数字的更多信息,请参阅Wikipedia: Hexadecimal。
简而言之:您的要求是不可行的。
说明:
String x = "He34llo";
,因为它包含无效的数字不能转换为十六进制。
十六进制可以有以下几点:0,1,2,3,4,5,6,7,8,9,A,B,C,d,E和F
在你的情况下无效信为H,l和O.
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.
你知道吗?十六进制是? (以及它是如何表示的) –