/**
* @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.八進制或者十六進制轉成十進制
方法爲:把八進制、十六進制數按權展開、相加即得十進制數。
(具體用法如下圖)
十六進制與八進制之間的轉換
- 八進制與十六進制之間的轉換有兩種方法
第一種:他們之間的轉換可以先轉成二進制然後再相互轉換。
第二種:他們之間的轉換可以先轉成十進制然後再相互轉換。
這裏就不再進行圖片用法解釋。