avatar

Javascript CRC16校验

Javascript CRC16校验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function crc16(hexString) {
let crc = 0x0000;
const polynomial = 0x1021;
let byte_val, bit, c15;
for (let i = 0; i < hexString.length / 2; i++) {
byte_val = parseInt(hexString.substr(i * 2, 2), 16);
for (let k = 0; k < 8; k++) {
bit = ((byte_val >> (7 - k) & 1) == 1);
c15 = ((crc >> 15 & 1) == 1);
crc <<= 1;
if (c15 ^ bit) {
crc ^= polynomial;
}
}
}
crc &= 0xffff;
return ('0000' + crc.toString(16)).slice(-4);
}
文章作者: pengweifu
文章链接: https://www.pengwf.com/2019/12/10/web/JS-CRC/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 麦子的博客
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论