Java 如何使用for循环对字节数组求和?

Java 如何使用for循环对字节数组求和?,java,Java,这管用! 数组长度为8 int crc = (bin[1] + bin[2] + bin[3] + bin[4] + bin[5] + bin[6]) & 0Xff; 问题是接收数据的长度可能不同。 我试着用循环来计算校验和,但是我没法用 byte crc = 0; for (int i = 1; i < bin.length - 2; i++) { crc += bin[i]; } int crcI = crc & 0xff; 字节crc=0; 对于(int i

这管用! 数组长度为8

int crc = (bin[1] + bin[2] + bin[3] + bin[4] + bin[5] + bin[6]) & 0Xff;
问题是接收数据的长度可能不同。 我试着用循环来计算校验和,但是我没法用

byte crc = 0;
for (int i = 1; i < bin.length - 2; i++) {
   crc += bin[i];
}
int crcI = crc & 0xff;
字节crc=0;
对于(int i=1;i
这通常会给出错误的值,但有时它们是正确的

此检查:

i < bin.length - 2

或者,更改您的
,非常感谢!我不明白我在想什么。老实说,我花了将近一个小时试图找出代码的错误:)别担心,这些事情会发生的。:)
i < 8 - 2
i < 6
for (int i = 1; i < bin.length - 1; i++) {
    ...
}
for (int i = 1; i <= bin.length - 2; i++) {
    ...
}