在 C# 中将字节数组转换为 int 数组时出错

本文关键字:数组 转换 出错 int 字节数 字节 | 更新日期: 2023-09-27 18:32:26

我正在尝试将字节数组转换为 int 数组广告,然后将字节数组转换回 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 数组时,当iArray数组中的值大于 256 时,iArray2数组中的值变为 false(可能是溢出,我不知道。

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

如何正确从字节数组转换为整数数组?

在 C# 中将字节数组转换为 int 数组时出错

Buffer.BlockCopy总是以字节为单位,而不是数组单元。

因此,当您在第二个BlockCopy()调用中传递iArray2.Length时,您将复制那么多字节,这是实际数组的四分之一。