java 如何将byte[4]数组转换成一个int型数据?

如题所述

java中将4字节的byte数组转成一个int值的工具方法如下: \x0d\x0a/** \x0d\x0a* @param byte[]\x0d\x0a* @return int\x0d\x0a*/ \x0d\x0apublic static int byteArrayToInt(byte[] b){ \x0d\x0a byte[] a = new byte[4]; \x0d\x0a int i = a.length - 1,j = b.length - 1; \x0d\x0a for (; i >= 0 ; i--,j--) {//从b的尾部(即int值的低位)开始copy数据 \x0d\x0a if(j >= 0) \x0d\x0a a[i] = b[j]; \x0d\x0a else \x0d\x0a a[i] = 0;//如果b.length不足4,则将高位补0 \x0d\x0a } \x0d\x0a int v0 = (a[0] & 0xff) << 24;//&0xff将byte值无差异转成int,避免Java自动类型提升后,会保留高位的符号位 \x0d\x0a int v1 = (a[1] & 0xff) << 16; \x0d\x0a int v2 = (a[2] & 0xff) << 8; \x0d\x0a int v3 = (a[3] & 0xff) ; \x0d\x0a return v0 + v1 + v2 + v3; \x0d\x0a}
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜