弗莱彻检查金额不加起来

时间:2016-03-13 08:29:14

标签: java binary checksum

我写了一个方法,应该计算二进制字符串的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,并且您可以看到它不是。 谁能帮我理解问题所在?我感谢你的帮助。谢谢。

0 个答案:

没有答案