使用javascript写一个CRC16-CCITT校验
时间: 2023-01-31 07:01:22 浏览: 504
CRC16校验JS算法(查表法+直接生成法)
CRC16-CCITT校验是一种常用的数据校验方法,它的原理是通过使用特定的多项式进行计算,将数据和多项式进行异或运算,然后得到一个16位二进制数,这个16位二进制数就是CRC16-CCITT校验码。
下面是使用javascript写一个CRC16-CCITT校验的代码示例:
```javascript
function crc16(data) {
var crc = 0xffff;
var polynomial = 0x1021;
for (var i = 0; i < data.length; i++) {
var b = data.charCodeAt(i);
for (var j = 0; j < 8; j++) {
var bit = ((b >> (7 - j)) & 1) == 1;
var c15 = ((crc >> 15) & 1) == 1;
crc <<= 1;
if (c15 ^ bit) crc ^= polynomial;
}
}
crc &= 0xffff;
return crc;
}
console.log(crc16("hello world")); // output: 0xd64e
```
在上面的代码中,我们使用了CRC16-CCITT的默认多项式0x1021,并且初始化了CRC值为0xffff。然后,我们对数据进行遍历,对每个字符进行8次循环,每次将CRC值左移一位,然后与当前字符的某一位进行异或运算,最后将CRC值与0xffff取与运算,得到最终的CRC16-CCITT校验码。
阅读全文