function crc16(data) {
var crc = 0;
for (var i = 0; i < data.length; i++) {
crc ^= data.charCodeAt(i);
for (var j = 0; j < 8; j++) {
if (crc & 1) crc = 0x8408 ^ crc >>> 1;
else crc >>>= 1;
}
}
return crc;
}
console.log(crc16("test").toString(16));