進制轉換工具類和理解

/**
 * @param args
 */
/**
 * 將二進制轉換成16進制
 *
 * @param buf
 * @return
 */
public static String parseByte2HexStr(byte[] buf) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < buf.length; i++) {
        String hex = Integer.toHexString(buf[i] & 0xFF);
        if (hex.length() == 1) {
            hex = '0' + hex;
        }
        sb.append(hex.toUpperCase());
    }
    return sb.toString();
}

/**
 * 將16進制轉換爲二進制
 *
 * @param hexStr
 * @return
 */
public static byte[] parseHexStr2Byte(String hexStr) {
    int temp = 2;
    if (hexStr.length() < 1) {
        return null;
    }
    byte[] result = new byte[hexStr.length() / temp];
    for (int i = 0; i < hexStr.length() / temp; i++) {
        int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
        int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
        result[i] = (byte) (high * 16 + low);
    }
    return result;
}

轉換圖解:

 

二進制與十進制之間的轉換:

 

1.十進制轉二進制

方法爲:十進制數除2取餘法,即十進制數除2,餘數爲權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商爲0爲止。

(具體用法如下圖)

 

 2.二進制轉十進制

方法爲:把二進制數按權展開、相加即得十進制數。

 

 

二進制與八進制之間的轉換

1.二進制轉八進制

方法爲:3位二進制數按權展開相加得到1位八進制數。(注意事項,3位二進制轉成八進制是從右到左開始轉換,不足時補0)。

(具體用法如下圖)

2.八進制轉成二進制

方法爲:八進制數通過除2取餘法,得到二進制數,對每個八進制爲3個二進制,不足時在最左邊補零。

(具體用法如下圖)

 

二進制與十六進制之間的轉換

1.二進制轉十六進制

方法爲:與二進制轉八進制方法近似,八進制是取三合一,十六進制是取四合一。(注意事項,4位二進制轉成十六進制是從右到左開始轉換,不足時補0)。

(具體用法如下圖)

2.十六進制轉二進制

方法爲:十六進制數通過除2取餘法,得到二進制數,對每個十六進制爲4個二進制,不足時在最左邊補零。

(具體用法如下圖)

 

 

十進制與八進制與十六進制之間的轉換

1.十進制轉八進制或者十六進制有兩種方法

第一:間接法—把十進制轉成二進制,然後再由二進制轉成八進制或者十六進制。

        無圖;

2.第二:直接法—把十進制轉八進制或者十六進制按照除8或者16取餘,直到商爲0爲止。

(具體用法如下圖)

3.八進制或者十六進制轉成十進制

方法爲:把八進制、十六進制數按權展開、相加即得十進制數。

(具體用法如下圖)

 

 

十六進制與八進制之間的轉換

  1. 八進制與十六進制之間的轉換有兩種方法

第一種:他們之間的轉換可以先轉成二進制然後再相互轉換。

第二種:他們之間的轉換可以先轉成十進制然後再相互轉換。

這裏就不再進行圖片用法解釋。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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