byte轉intjava
① java 如何將byte[4]數組轉換成一個int型數據
java中將4位元組的byte數組轉成一個int值的工具方法如下: x0dx0a/** x0dx0a* @param byte[]x0dx0a* @return intx0dx0a*/ x0dx0apublic static int byteArrayToInt(byte[] b){ x0dx0a byte[] a = new byte[4]; x0dx0a int i = a.length - 1,j = b.length - 1; x0dx0a for (; i >= 0 ; i--,j--) {//從b的尾部(即int值的低位)開始數據 x0dx0a if(j >= 0) x0dx0a a[i] = b[j]; x0dx0a else x0dx0a a[i] = 0;//如果b.length不足4,則將高位補0 x0dx0a } x0dx0a int v0 = (a[0] & 0xff) << 24;//&0xff將byte值無差異轉成int,避免Java自動類型提升後,會保留高位的符號位 x0dx0a int v1 = (a[1] & 0xff) << 16; x0dx0a int v2 = (a[2] & 0xff) << 8; x0dx0a int v3 = (a[3] & 0xff) ; x0dx0a return v0 + v1 + v2 + v3; x0dx0a}
② 在Java中,byte類型數據在運算之前要轉換成int類型數據。
64 + 1會直接編譯為65 因為65<128 所以可以直接作為byte類型賦值
③ java中如何將byte[]裡面的數據轉換成十六進制
方法如下:
/* *
* Convert byte[] to hex string.這里我們可以將byte轉沖脊換成int,然後利用Integer.toHexString(int)
*來轉換成16進制字元散悔滲串。
* @param src byte[] data
* @return hex string
*/
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);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}
此方法能將byte[]轉化成16進制字元串,