16进制字符串 转 ArrayBuffer 的应用场景是给单片机发送指令。
16进制字符串 转 ArrayBuffer 方法一:
var hexStr = 'cf 03 00 00 00 00 1e 59 ce 96 7f 01 00 00 a5'
var strs = hexStr.split(" ")
for (var i = 0; i < strs.length; i++) {
strs[i] = "0x" + strs[i] //每个字符加上0x
}
var buf = Buffer.from(strs)
16进制字符串 转 ArrayBuffer 方法二:
var hexStr = 'cf03000000001e59ce967f010000a5'
var typedArray = new Uint8Array(hexStr.match(/[\da-f]{2}/gi).map(function(h) {
return parseInt(h, 16)
}))
var buf = typedArray.buffer
Uint8Array 数组类型转化为16进制字符串
function uint8ArrayToHex(uint8Arr) {
return Array.prototype.map
.call(uint8Arr, x => ('00' + x.toString(16)).slice(-2))
.join('');
},
arraybuffer类型转16进制字符串
function bufToHex(buffer) {
return Array.prototype.map
.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2))
.join('');
}