0
回答
java求助二进制转ASCII码基础问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

下面代码binToAscii("100100001110010000011001000001")运行结果是CAA;是对的;如果是这个的怎么办000001001000011001001000001100100000100000   就是在原来的突然多了几个0怎么解决;想要的结果还是CAA;求高手;谢谢各位


 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);       
              }        
              // 到这里表示二进制码串并不是10的倍数       
              // 这里最后的高位直接转换为char       
              // 若:是舍掉高位0的情况,没加10的情况用下面的方法       
              // 若加10,且舍掉高位0的用                   
              if(bin.length() != 0) {
                  ret = (char)Integer.parseInt(bin, 2) + ret;       
              }
              return ret;        
          }
举报
wengweng
发帖于4年前 0回/219阅
顶部