代码之家  ›  专栏  ›  技术社区  ›  qtt qtt

将无符号字节设置为ArrayBuffer

  •  0
  • qtt qtt  · 技术社区  · 7 年前

    const buffer = new ArrayBuffer(16);
    const dataView = new DataView(buffer);
    dataView.setUint8(1, 4)
    console.log(dataView.getUint8(1)); // 1
    

    但是,我想在 dataView 减速线,如果没有 因此,如果可以将无符号字节设置为 4 在字节偏移量处 1 dataView.setUint8(1, 4) ?

    或者将DataView转换为ArrayBuffer?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Lux    7 年前

    我想你错过的最重要的是 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 ]