java 二進制、十六進制互轉


import java.util.Arrays;

public class BinHexSwitchUtil {
    public static String bytesToHexString(byte[] bytes){
        if (bytes==null || bytes.length==0){
            return null;
        }
        String result="";
        for (byte b:bytes){
            int temp=b & 0xFF;
            String tempStr=Integer.toHexString(temp);
//            System.out.println("tempStr:"+tempStr);
            if (tempStr.length()==1){//如果轉換完了是 一位數 需要前面加 0
                result+="0"+tempStr;
            }else {
                result+=tempStr;
            }
        }
        return result;
    }
    public static byte[] hexStringTobytes(String hexString){
        if (hexString==null || hexString.length()==0){
            return null;
        }
        byte[] result=new byte[hexString.length()/2];
        for (int i=0,foot=0;i<hexString.length();i+=2,foot++){
            String temp=hexString.substring(i,i+2);//切割 16進制 二位為一個單位轉換
            result[foot]=(byte) Integer.parseInt(temp,16);
        }
        return result;
    }

    public static void main(String[] args) {
        String value="a2\tcdefghijklmnxyz";
        System.out.println("value 2進制:"+Arrays.toString(value.getBytes()));
        String hexStr=bytesToHexString(value.getBytes());
        System.out.println("value 16進制:"+hexStr);

        System.out.println("value轉回二進制:"+Arrays.toString(hexStringTobytes(hexStr)));
        System.out.println("value轉回二進制:"+new String(hexStringTobytes(hexStr)));
        System.out.println((byte)Integer.parseInt("-129"));

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM