Преобразование int [] в byte [] с 1 int, соответствующим 1 байту - PullRequest
0 голосов
/ 17 июня 2019

Я использую функцию Stream.Write(byte[],int int) для записи в поток, но я не могу преобразовать мой int[] to byte[], в моем массиве целых чисел у меня есть 56 целых чисел, и все они имеют значение ниже 8 бит. Я хочу преобразовать свой int [] byte [] таким образом, чтобы мой byte [] также содержал 56 байтов.

Как это

int [] = {0x0004,0x0001,0x0003,0x0003}
байт [] = {0x04,0x01,0x03,0x03}

Заранее спасибо

1 Ответ

3 голосов
/ 17 июня 2019

Вы должны извлечь младший байт из каждого целого: myByte = (byte)(myInt & 0xFF)

using System.Linq;
//...
int[] integers = {0x0004,0x0001,0x0003,0x0003};
byte[] bytes = integers.Select(n => (byte)(n & 0xFF)).ToArray();
...