美文网首页
JS/JavaScript 异或校验 16进制

JS/JavaScript 异或校验 16进制

作者: Kser | 来源:发表于2022-01-26 09:44 被阅读0次

//异或校验

function chk8xor(hexarr) {

  var bcc = 0;

  var xor = 0;

  for(var i= 0; i< hexarr.length; i++){

      var hexint = parseInt(hexarr[i],16);

      if(i==0){ xor = hexint; }

      else {

          bcc = xor ^ hexint;

          xor = bcc;

      }

  }

  return fillZero(bcc.toString(16),2)

}

//字符串长度判断不足填充0

function fillZero(num, n) { 

  var len = num.toString().length; 

  while(len < n) { 

      num = "0" + num; 

      len++; 

  } 

  return num; 

}

//字符串转为数组

function str2Arr(str,num){

  var arr = [];

  var len = str.length;

  for (let index = 0; index < len; index+=num) {

    arr.push(str.slice(index,index+num));

  }

  return arr;

}

console.log(chk8xor(str2Arr('01A07CFF02',2)));

//输出20

相关文章

网友评论

      本文标题:JS/JavaScript 异或校验 16进制

      本文链接:https://www.haomeiwen.com/subject/ejfnhrtx.html