之前对接海康设备的时候,碰到一个问题。需要将char数组转换为int,而不是int数组
例如:现有一个char数组 char[] arr = {0,0,1,1}
转换为int后就是,00000000 00000000 00000001 00000001 = 257
网上的方法大都是,一个字节一个字节的计算,如下
char[] arr = {0,0,1,'a'};
Integer sum = arr[3] * 256 * 256 * 256 + arr[2] * 256*256 + arr[1]* 256 + arr[0];
实现了一个使用位移的方法:如下
public Integer getInt(char [] arr){
Integer sum = 0;
for (int i = 0; i < arr.length; i++) {
Integer moveCount = (arr.length - i -1) * 8;
sum += arr[i] << moveCount;
}
return sum;
}