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)
,
Хотел бы отметить, что текущий принятый ответ может не работать, поскольку порядок байтов зависит от платформы.