最新消息:

32bit的高低位互转

Java fishpro 130浏览
  1. 把数据转成2进制
  2. 把二进制转成字符串
  3. 把二进制放在 bin1,bin2,bin3,bin4变量中,进行交换反转
  4. 把二进制转成十进制
/**
     * 高低位调换
     * */
    public  static String reverse32bit(String binStr){
        if(binStr.length()<32){
            String zero="";
            for(int i=0;i<(32-binStr.length());i++){
                zero=zero+"0";
            }
            binStr=zero+binStr;
        }

        String bit4=binStr.substring(0,8);
        String bit3=binStr.substring(8,16);
        String bit2=binStr.substring(16,24);
        String bit1=binStr.substring(24,32);
        return bit1+bit2+bit3+bit4;
    }
/**
*二进制转long
*/
 public static Long convert32Bin2Long(String str){
        Long lng=0L;
        for(int i=0;i<str.length();i++){
            char c=str.charAt(i);
            if(c=='1'){
                lng= lng+(long) (Math.pow(2,str.length()-1-i));
            }
        }
        return lng;
    }

注意:java中默认传输是大端传输,所以才有了本章节的高低位互转,实际解决问题的根本思路是进行byteOrder的设置。

转载请注明:程序鱼 » 32bit的高低位互转