在JTextArea中输入"1100001001000100"(这是一个2进制的表达方式,但是在JTextArea中只能输入String字符串吧)
但是我必须要把这个"1100001001000100"转换成值相同的2进制,发送到服务器(这是一个交换机的指令,必须是2进制的)
把"1100001001000100"转换成16进制得到的是c2 44然后在另外一个JTextArea中显示
但是我必须要把这个"1100001001000100"转换成值相同的2进制,发送到服务器(这是一个交换机的指令,必须是2进制的)
把"1100001001000100"转换成16进制得到的是c2 44然后在另外一个JTextArea中显示
System.out.println(Long.toHexString(Long.valueOf("11000010010001001100001001000100",2))) ;c244c244
int b=b.parseInt(a,2);
String c=Integer.toHexString(b);
System.out.println(c);
String a="1100001001000100";
Long b=Long.parseLong(a,2);
String c=Long.toHexString(b);
System.out.println(c);
long b=b.parseLong(a,2);
String c=Long.toHexString(b);
再长就不行了,拆了做成数组吧~BigInteger没有这两个方法!
public static String binaryToHex(String binary) {
//可以加写判断参数是否有效等的代码
String hex = "";
int length = binary.length();
int first = length % 4;
int size = length / 4;
int bin = 0;
if(first != 0) {
bin = Integer.valueOf(binary.substring(0, first), 2);
hex += Integer.toHexString(bin);
}
for(int i = 0; i < size; i++) {
bin = Integer.valueOf(binary.substring(i * 4 + first, i * 4 + 4 + first), 2);
hex += Integer.toHexString(bin);
}
return hex;
}简单的写了个二进制转16进制数,你可以看看,也可以去优化优化