两个十六进制转为十进制
传入的 byte 数组确定为两个字节
代码如下
/**
* 两个字节转为十进制
* @param data[0] 十六进制低位
* @param data[1] 十六进制高位
* @return
*/
public static int byteToInt(byte[] data){
int deci = ((data[0] & 0xff)|(data[1] & 0xff)<<8);
return deci;
}
多个字节转化为 十进制
/**
* @Description: 多字节转化为 10进制
* @Param: data
*/
public static int bytesToInt(byte[] data){
int deci = 0;
for(int i = 0; i < data.length; i++){
// 理论上几次操作后需要与 int 的最大最小值比较大小
deci = deci | ((data[i] & 0xff) << i*8);
}
// todo 字节转化得到的结果不能超过 int 的最大值 Integer.MAX_VALUE
// todo 不能小于 int 的最小值, Integer.MIN_VALUE
return deci;
}