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)文章
將JSON字符串?dāng)?shù)組轉(zhuǎn)對象集合方法步驟
這篇文章主要給大家介紹了關(guān)于將JSON字符串?dāng)?shù)組轉(zhuǎn)對象集合的方法步驟,文中通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08java實現(xiàn)酷狗音樂臨時緩存文件轉(zhuǎn)換為MP3文件的方法
這篇文章主要介紹了java實現(xiàn)酷狗音樂臨時緩存文件轉(zhuǎn)換為MP3文件的方法,涉及java針對文件操作的相關(guān)技巧,需要的朋友可以參考下2016-08-08關(guān)于MyBatis模糊查詢的幾種實現(xiàn)方式
在實際項目中,我們會經(jīng)常對數(shù)據(jù)做一些模糊查詢的操作,這時候就需要利用到 like字段,那么在Mybatis中,有哪些方式可以實現(xiàn)模糊查詢呢,需要的朋友可以參考下2023-05-05