我写了一个方法,应该计算二进制字符串的Fletcher校验和。 我使用了这个question中提供的答案。这是完整的代码:
String str = "101010100011001111001111";
int[] C = new int[2];
int indx = 0;
for (int i = 0; i < str.length()/8; i++){
int tmp = Integer.parseInt(str.substring(indx, indx+8),2);
C[0] = (C[0] + (tmp & 0xFF)) % 255;
C[1] = (C[1] + C[0]) % 255;
indx += 8;
}
System.out.println(C[0]);
System.out.println(C[1]);
System.out.println((C[1] << 8) | C[0]);
我得到的结果是:
173
54
13997
基于this文章,如果校验和正确执行,则最终结果应为0,并且您可以看到它不是。 谁能帮我理解问题所在?我感谢你的帮助。谢谢。