在Java中从ASCII转换后得到错误的二进制值

问题描述

由于我要发起一个ISO请求,所以我做了128位。 原始位图:

位图:10100010001100000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000010010000

转换为ASCII请求中的发送后(binarytoascii代码

因此,出于检查目的,我将ASCII转换为BINARY(asciiToBinary)

10100010001100000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000110000000000000000000111111

后8位数字有误,因此会出现异常。

//binary to ascii
StringBuffer ascii=new StringBuffer();
        if(bitmap.length() >= 8){
            for (int i = 0; i < bitmap.length(); i += 8) {
                ascii.append((char) Integer.parseInt(bitmap.substring(i,i + 8),2));
            }
        }
        String asciiStr=ascii.toString();

//convert asccii to binary
public static String AsciiToBinary(String asciiString){  

        byte[] bytes = asciiString.getBytes();  
        StringBuilder binary = new StringBuilder();  
        for (byte b : bytes)  
        {  
            int val = b;  
            //System.out.println(val);
            for (int i = 0; i < 8; i++)  
            {  
                binary.append((val & 128) == 0 ? 0 : 1);  
                val <<= 1;  
            }  
            // binary.append(' '); 
            System.out.println(binary.toString());
        }  
        return binary.toString();  
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)