java 二進(jìn)制數(shù)據(jù)與16進(jìn)制字符串相互轉(zhuǎn)化方法
二進(jìn)制數(shù)據(jù)一般輸入的格式是0x45, 0x3a, 0xc3, 這種數(shù)據(jù)格式看起來是16進(jìn)制的字符串,但是實際上在存儲的時候每個都對應(yīng)一個字節(jié),比如0x45的二進(jìn)制字節(jié)就是0100 0101,對應(yīng)的16進(jìn)制字符串就是0x45。實際編程過程中,經(jīng)常遇到這兩種格式的相互轉(zhuǎn)化,在此記錄一下代碼。
二進(jìn)制數(shù)據(jù)轉(zhuǎn)化為16進(jìn)制字符串(中間加的‘:'還有‘;'是為了查看下標(biāo),也可以自行去掉):
public static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder();
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
stringBuilder.append(i + ":");
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv + ";");
}
return stringBuilder.toString();
}
16進(jìn)制字符串轉(zhuǎn)化為二進(jìn)制數(shù)據(jù):
public static byte[] hexStringToByte(String hex) {
int len = (hex.length() / 2);
byte[] result = new byte[len];
char[] achar = hex.toCharArray();
for (int i = 0; i < len; i++) {
int pos = i * 2;
result[i] = (byte) (toByte(achar[pos]) << 4 | toByte(achar[pos + 1]));
}
return result;
}
private static byte toByte(char c) {
byte b = (byte) "0123456789abcdef".indexOf(c);
return b;
}
以上這篇java 二進(jìn)制數(shù)據(jù)與16進(jìn)制字符串相互轉(zhuǎn)化方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot基于docsify?實現(xiàn)隨身文檔
這篇文章主要介紹了springboot基于docsify實現(xiàn)隨身文檔的相關(guān)資料,需要的朋友可以參考下2022-09-09
java實現(xiàn)監(jiān)控rtsp流轉(zhuǎn)flv方法實例(前端播放,前后端代碼都有)
這篇文章主要給大家介紹了關(guān)于java實現(xiàn)監(jiān)控rtsp流轉(zhuǎn)flv的相關(guān)資料,文中介紹的是前端播放,前后端代碼都有,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
java利用pdfbox+poi往pdf插入數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于java利用pdfbox+poi如何往pdf插入數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-02-02
spring boot整合jsp及設(shè)置啟動頁面的方法
這篇文章主要給大家介紹了關(guān)于spring boot整合jsp及設(shè)置啟動頁面的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09

