概述
例子:
eleData: [0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00],//16进制的数组相加
点击相加:
getChecksum(data) {
//console.log('data', data)
// data 固定长度20 crc
let checksum = 0
for (var i = 0; i < 19; i++) {
checksum += data[i] //相加
//console.log('checksum', checksum)
}
//console.log('getsum', checksum)
let anum = checksum % 256 // 取最后字节
//console.log('anum', anum)
let sum = 85 - anum //0x55转十进制为85
//console.log('sum1', sum)
if (sum < 0) {
sum += 256
}
data.push(sum) //得到的数加入数组
this.getString(data) //转化16进制
//console.log('return', data) //.toString(16).replace(/,/g,"")转16进制并去掉空格
},
//数组转字符串
getString(arrBytes) {
console.log('eleData', arrBytes)
var str = "";
for (var i = 0; i < arrBytes.length; i++) {
var tmp;
var num = arrBytes[i];
if (num < 0) {
//此处填坑,当byte因为符合位导致数值为负时候,需要对数据进行处理
tmp = (255 + num + 1).toString(16);
} else {
tmp = num.toString(16);
}
if (tmp.length == 1) {
tmp = "0" + tmp;
}
str += tmp;
}
console.log('crcnum', str)
this.write16(str)//向设备发送数据
},
最后
以上就是火星上曲奇为你收集整理的vuejs crc算法,16进制换算的全部内容,希望文章能够帮你解决vuejs crc算法,16进制换算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复