publicstaticvoidmain(String[]args){System.out.println("abcdef".substring(2));System.out.println(binToAscii("100100001110010000011001000001"));}staticStringbinToAscii(Stri...
public static void main(String[] args) {
System.out.println("abcdef".substring(2));
System.out.println(binToAscii("100100001110010000011001000001"));
}
static String binToAscii(String bin) {
return bin.length() > 31 ? bta(bin) : bta(Integer.parseInt(bin, 2));
}
static String bta(int ib) {
String ret = "";
while(ib != 0) {
// 低8位转char
ret = (char) (ib & 0xff) + ret;
// 右移10位,8位+10,高位补0
ib = ib >>> 10;
}
return ret;
}
static String bta(String bin) {
String ret = "";
while(bin.length() >= 10) {
String obin = bin.substring(bin.length() - 8, bin.length());
ret = (char)Integer.parseInt(obin, 2) + ret;
bin = bin.substring(0, bin.length() - 10);
}
if(bin.length() != 0) {
ret = (char)Integer.parseInt(bin, 2) + ret;
}
return ret;
}
上面代码binToAscii("100100001110010000011001000001")运行结果是CAA;是对的;如果是这个的怎么办000001001000011001001000001100100000100000 就是在原来的突然多了几个0怎么解决;想要的结果还是CAA;谢谢各位;求高手;谢谢
展开