JS/JavaScript 异或校验 16进制

//异或校验

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容