Ошибка при преобразовании массива байтов в массив целых чисел в C#

Я пытаюсь преобразовать массив байтов в массив целых чисел, а затем преобразовать массив байтов обратно в массив int.

Для преобразования из массива байтов в массив int я использовал этот код:

int[] iArray = new int[someSize];
byte[] bArray = new byte[iArray.Length * sizeof(int)];
Buffer.BlockCopy(iArray, 0,bArray, 0, bArray.Length); // This code works correctly.

Но при преобразовании из массива байтов в массив int значения в массиве iArray2становятся ложными, когда значение в массиве iArrayравно больше 256 (может быть переполнение, не знаю.)

// What is the error in this code?.
int iArray2 = new int[someSize];
Buffer.BlockCopy(bArray, 0, iArray2, 0, iArray2.Length);

Как правильно преобразовать массив байтов в массив целых чисел?

6
задан Peter Mortensen 25 May 2015 в 06:33
поделиться