为了在此处添加现有答案,如果数组大小小于 sizseof(int) (4) 字节,Bitconverter.ToInt32() 将抛出 ArgumentException
目标数组的长度不足以复制集合中的所有项目。检查数组索引和长度。
给定一个小于sizeof(int) (4) 字节大小的数组,您可以像这样补偿左/右填充;
右键盘
产生正的Int32 数字
int intByteSize = sizeof(int);
byte[] padded = new byte[intByteSize];
Array.Copy(sourceBytes, 0, padded, 0, sourceBytes.Length);
sourceBytes = padded;
左键
结果为负数 Int32,假设字节索引 sourceBytes.Length - 1 处的值非零。
int intByteSize = sizeof(int);
byte[] padded = new byte[intByteSize];
Array.Copy(sourceBytes, 0, padded, intByteSize - sourceBytes.Length, sourceBytes.Length);
sourceBytes = padded;
填充后,您可以安全地拨打int myValue = BitConverter.ToInt32(sourceBytes, 0);。