本方法适用于(高位在前,低位在后)的顺序
public static void main(String[] args) {
byte[] l = new byte[]{(byte) 0xe7, (byte) 0xf3, (byte) 0x90, (byte) 0x54,
(byte) 0x39, (byte) 0x6e, (byte) 0x11, (byte) 0x7c,
(byte) 0x01, (byte) 0xe7, (byte) 0x70, (byte) 0x3c,
(byte) 0x79, (byte) 0x14, (byte) 0xb5, (byte) 0x67};
System.out.println(getLong(l,4));
}
/**
* @param data 数组
* @param num 多少个byte相组合成一个数字
* */
public static long getLong(byte[] data, int num) {
long count = 0;
for (int i = 0; i < data.length / num; i++) {
int offset = i * num;
long val = 0;
for (int j = 0; j < num; j++) {
long _val = ((long)(data[offset + num - j - 1] & 0xFF) << j * 8);
if (val == 0) {
val = _val;
} else {
val = val | _val;
}
}
count = count + val;
}
return count;
}
输出:6918358899
本方法适用于(高位在前,低位在后)的顺序
public static void main(String[] args) {
byte[] l = new byte[]{(byte) 0xe7, (byte) 0xf3, (byte) 0x90, (byte) 0x54,
(byte) 0x39, (byte) 0x6e, (byte) 0x11, (byte) 0x7c,
(byte) 0x01, (byte) 0xe7, (byte) 0x70, (byte) 0x3c,
(byte) 0x79, (byte) 0x14, (byte) 0xb5, (byte) 0x67};
System.out.println(getLong(l,4)); }
/**
* @param data 数组
* @param num 多少个byte相组合成一个数字
* */
public static long getLong(byte[] data, int num) {
long count = 0;
for (int i = 0; i < data.length / num; i++) {
int offset = i * num;
long val = 0;
for (int j = 0; j < num; j++) {
long _val = ((long)(data[offset + j] & 0xFF) << j * 8);
if (val == 0) {
val = _val;
} else {
val = val | _val;
}
}
count = count + val;
}
return count;
}
输出:6918358899