这是一个函数,其中 bytes
来自string
,并抓取每个字母的字符代码来创建 bytyes
的数组
function checksum(bytes) {
var a = 0;
var b = 0;
for (var i = 0; i < bytes.length; i++) {
a = (a + bytes[i]) % 0xff;
b = (b + a) % 0xff;
}
return (b << 8) | a;
}
我主要对 % 0xff
的 Angular 色感到困惑和b << 8
。有人可以帮我解决这个问题吗?
最佳答案
a 等于所有元素之和模 255 b 等于 a 取模 255 后的所有值的总和(因此 1 乘以最后一个元素 + 2 乘以之前的元素......)
最终值是一个 16 位数字,其中高 8 位为 b,低 8 位为 a。
这实际上是弗莱彻的校验和
关于javascript - 这个函数计算什么样的校验和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31182206/