【Javascript】 Uint8Array 数组类型、ArrayBuffer对象类型与十六进制字符串互转
- Uint8Array是什么
Uint8Array 数组类型表示一个8位无符号整形数组,创建时内容被初始化为0。创建完成后可以以对象的方式或使用数组下标索引的方式操作数组中的元素。 Uint8Array数组类型转化为16进制
function uint8Array(uint8Array) { return Array.prototype.map.call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2)).join(''); }
- ArrayBuffer是什么
ArrayBuffer对象用来表示通用的、固定长度的原始二进制数据缓冲区。它是一个字节数组,通常在其他语言中称为“byte array”。你不能直接操作 ArrayBuffer 的内容,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。 ArrayBuffer对象类型转16进制字符串
function buf2hex(buffer) { return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join(''); }
16进制字符串转ArrayBuffer对象类型
var hex = 'AA5504B10000B5' var typedArray = new Uint8Array(hex.match(/[\da-f]{2}/gi).map(function (h) { return parseInt(h, 16) })) var buffer = typedArray.buffer