Uint16Array to Uint8Array

У меня есть основной вопрос. Скажем, у меня есть Uint16Array, и у меня есть номер 4 в нем.

data_16=new Uint16Array([4]);  

Теперь у меня есть длина 1 и byteLength 2;

Как я могу преобразовать это в Uint8Array.

Я не хочу создавать новый вид.

data_8 = new Uint8Array(data_16)

Если я сделаю это, я получу длину массива 1 и byteLength 1. Это не то, что я хочу.

Мне нужно растянуть это 16-битное значение в 16-разрядном массиве на 8-битные значения, чтобы получить 8-битный массив, чтобы в итоге получилось 2 значения в 8-битном массиве.

Я могу просто создать функцию, которая конвертируется с помощью shift и ко всему прочему. Но можно ли это сделать только с помощью манипуляций с массивом?

2 ответа

Решение

Вы можете использовать свойство буфера, т.е. data_8 = new Uint8Array(data_16.buffer),

Хотел бы отметить, что текущий принятый ответ может не работать, поскольку порядок байтов зависит от платформы.

Другие вопросы по тегам