当前位置:编程学习 > JAVA >>

java 求助二进制ascii码转换问题?

下面代码binToAscii("100100001110010000011001000001")运行结果是CAA;是对的;如果是这个的怎么办101010100100001110101001000001100100000110101010
  就是在原来的突然多了几个0怎么解决;想要的结果还是CAA;求高手;谢谢各位 
是有规律的,就是CAA之间都是10;但是每个字符前面的10是一个整体;比如c就是10C(1001000011)然后C和A之间可能有很多10;也可能没有,就是说每个字符之间可能有很多10;也可能没有;但是每个字符前带有一个10;因为10和字符看成一个整天;
就比如101010100100001110101001000001100100000110101010;这个数据转换之后是CAA;你看怎么搞呀;哥们;代码不知道怎么写

哥们你看每次到最后一个10;就可以把01000011转换成c;其他也是一样;这样可以搞出来吗;可是代码不知道该如何下手;这个该怎么写呀


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;                       
          }  二进制 ascii java 数据 string --------------------编程问答--------------------
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,