вычитание значения байтового массива из другого байтового массива - PullRequest
0 голосов
/ 12 декабря 2018

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

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

У меня есть следующий код,

byte[] arr_i = {0x01,0x02,0x03};
byte[] arr_j = {0x04,0x05,0x06};

    int i = BitConverter.ToInt32(arr_i, 0);
    int j = BitConverter.ToInt32(arr_j, 0);
    int sub = j - i;
    byte[] sum = BitConverter.GetBytes(sub);

Как только я попадаю в переменную i, я получаю сообщение об ошибке

{"Destination array is not long enough to copy all the items in the collection. Check array index and length."}

Мне кажется, что существует какое-то несоответствие между типами, но я не нашел ни одного примера того, как это сделать без него.

Спасибо

1 Ответ

0 голосов
/ 12 декабря 2018

Спасибо за комментарий @Luaan, я изменил код на

byte[] arr_i = {0x01,0x02,0x03,0x04};
byte[] arr_j = {0x04,0x05,0x06,0x07};

int i = BitConverter.ToInt32(arr_i, 0);
int j = BitConverter.ToInt32(arr_j, 0);
int sub = j - i;
byte[] sum = BitConverter.GetBytes(sub);

И значение суммы {0x03, 0x03, 0x03, 0x03}, как и ожидалось.BitConverter.ToInt32 потребовалось 4 байта для правильной работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...