JS ArrayBuffer 数据获取与转换
JS ArrayBuffer 数据获取与转换
简介
ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。
它是一个字节数组,通常在其他语言中称为“byte array”。
你不能直接操作 ArrayBuffer 的内容,而是要通过类型数组对象或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。
查看ArrayBuffer内容
内部有4种存储方式,一般 Uint8Array 使用的多
[Int8Array]]: Int8Array(20) [104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 99, 109, 115, 111, 102, 116, 46, 99, 110]
[[Int16Array]]: Int16Array(10) [29800, 28788, 12090, 30511, 30583, 25390, 29549, 26223, 11892, 28259]
[[Int32Array]]: Int32Array(5) [1886680168, 1999580986, 1663989623, 1718580077, 1851993716]
[[Uint8Array]]: Uint8Array(20) [104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 99, 109, 115, 111, 102, 116, 46, 99, 110]
byteLength: 20
转16进制字符
function buf2hex(buffer) { // buffer is an ArrayBuffer
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
}
// 也可这样定义
const buf2hex = _ => Array.prototype.map.call(new Uint8Array(_), _ => ('00' + _.toString(16)).slice(-2)).join('')
👌 介绍完毕!请开始你的表演~
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!