JAVA 進制轉換工具類 10進制轉16進制 10進制轉2進制 16進制轉2進制 16進制10進制 2進制轉10進制 2進制轉16進制

進制轉換的坑:

注意:使用Integer的方法轉換出來的2進制字符串 最高位是沒有補零的 ,java的Integer類的toBinaryString()方法轉換出來的二進制字符串只會保留最高非零位以後的字符串,不滿int類型的32位,所以需要補零。

/** 
    * @Description: 將2進制補位32位
    * @Param: [binary] 
    * @return: java.lang.String 
    * @Author: Liang Shan 
    * @Date: 2019/9/24 0024 
    */ 
    public static String binaryToBinary32(String binary) {
        StringBuilder stringBuilder = new StringBuilder();
        if (binary.length() < 32) {
            for (int i = 0; i < 32 - binary.length();i++) {
                stringBuilder.append("0");
            }
        }
        stringBuilder.append(binary);
        return stringBuilder.toString();
    }

 工具類:

package com.lw.czy.util;

/**
 * @program: ysczy
 * @description: 進制轉換
 * @author: Liang Shan
 * @create: 2019-09-19 17:01
 **/
public class ParseUtil {

    /**
    * @Description: 16進制字符串轉10進制
    * @Param: [hex]
    * @return: java.lang.String
    * @Author: Liang Shan
    * @Date: 2019/9/24 0024
    */
    public static Integer hexStringToDecimal(String hex) {
        Integer result = Integer.valueOf(hex, 16);
        return result;
    }

    /**
     * @Description: 16進制字符串轉2進制字符串
     * @Param: [hex]
     * @return: java.lang.String
     * @Author: Liang Shan
     * @Date: 2019/9/24 0024
     */
    public static String hexStringToBinaryString(String hex) {
        Integer temp = Integer.valueOf(hex, 16);
        String result = Integer.toBinaryString(temp);
        return result;
    }

    /** 
    * @Description: 10進制轉16進制字符串 
    * @Param: [] 
    * @return: java.lang.String 
    * @Author: Liang Shan 
    * @Date: 2019/9/24 0024 
    */ 
    public static String decimalToHexString(Integer decimal) {
        String result = Integer.toHexString(decimal);
        return result;
    }

    /**
     * @Description: 10進制轉2進制字符串
     * @Param: []
     * @return: java.lang.String
     * @Author: Liang Shan
     * @Date: 2019/9/24 0024
     */
    public static String decimalToBinaryString(Integer decimal) {
        String result = Integer.toBinaryString(decimal);
        return result;
    }

    /**
     * @Description: 2進制字符串轉10進制
     * @Param: [hex]
     * @return: java.lang.String
     * @Author: Liang Shan 
     * @Date: 2019/9/24 0024 
     */
    public static Integer binaryStringToDecimal(String binary) {
        Integer result = Integer.valueOf(binary, 2);
        return result;
    }

    /**
     * @Description: 2進制字符串轉16進制字符串
     * @Param: []
     * @return: java.lang.String
     * @Author: Liang Shan
     * @Date: 2019/9/24 0024
     */
    public static String binaryStringToHexString(String binary) {
        Integer temp = Integer.valueOf(binary, 2);
        String result = Integer.toHexString(temp);
        return result;
    }

    /**
     * @Description: byte[]轉字符串
     * @Param: [bytes]
     * @return: java.lang.String
     * @Author: Liang Shan 
     * @Date: 2019/9/20 0020 
     */
    public static String byte2Hex(byte[] bytes) {
        StringBuffer stringBuffer = new StringBuffer();
        String temp = null;
        for (int i = 0; i < bytes.length; i++) {
            temp = Integer.toHexString(bytes[i] & 0xff);
            if (temp.length() == 1) {
                // 得到的一位的進行補0操作
                stringBuffer.append("0");
            }
            stringBuffer.append(temp);
        }
        return stringBuffer.toString();
    }

    /**
     * @Description: byte[]轉String[]
     * @Param: [bytes]
     * @return: java.lang.String[]
     * @Author: Liang Shan 
     * @Date: 2019/9/20 0020 
     */
    public static String[] bytesToStrings(byte[] bytes) {
        String[] strings = new String[bytes.length];
        for (int i = 0; i < bytes.length; i++) {
            String temp = Integer.toHexString(bytes[i] & 0xff);
            if (temp.length() == 1) {
                strings[i] = '0' + temp;
            } else {
                strings[i] = temp;
            }
        }
        return strings;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章