6

我有一个基本问题。假设我有一个 Uint16Array 并且里面有数字 4。

data_16=new Uint16Array([4]);  

现在我有一个长度 1 和 byteLength 2;

我如何将其转换为 Uint8Array。

我不想创建新视图。

data_8 = new Uint8Array(data_16)

如果我这样做,我会得到数组长度 1 和 byteLength 1。这不是我想要的。

我需要将 16array 中的 16 位值拉伸为 8 位值,以便 8 位数组最终得到 2 个值 int 8 位数组。

我可以创建一个函数,它可以转换为 shif 和所有这些东西。但是只能通过数组操作来完成吗?

4

1 回答 1

12

您可以使用缓冲区属性,即data_8 = new Uint8Array(data_16.buffer, data_16.byteOffset, data_16.byteLength).

于 2015-02-03T04:33:20.560 回答