我知道你能做到
const buffer = new ArrayBuffer(16);
const dataView = new DataView(buffer);
dataView.setUint8(1, 4)
console.log(dataView.getUint8(1)); // 1但是,我想在dataView减速线之前设置一个无符号字节,因此可以在不访问dataView的情况下这样做吗?因此,如果可以在字节偏移量1处将4的一个无符号字节设置为ArrayBuffer,而不是使用dataView.setUint8(1, 4)
或者是将DataView转换为ArrayBuffer?
发布于 2018-08-27 03:32:59
我认为您忽略的重要一点是,DataView只是一个视图。因此,当您执行dataView.setUint8(1, 4)时,您需要修改buffer。dataView本身并不保存数据,只是对缓冲区的引用。所以你的代码已经完成了你想要的事情。要获得它的ArrayBuffer,只需使用原始缓冲区:
const buffer = new ArrayBuffer(16);
const dataView = new DataView(buffer);
dataView.setUint8(1, 4)
console.log(dataView.getUint8(1)); // 4
console.log(new Uint8Array(buffer)) // [ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]https://stackoverflow.com/questions/52029453
复制相似问题