字节数组到 int C#
Byte array to int C#
我正在尝试将字节数组转换为 int 值
但是我遇到了一个例外:
"Destination array is not long enough to copy all the items in the
collection. Check array index and length."
异常在线:
int length = BitConverter.ToInt32(bytes_length, 0);
byte _length 包含值 (0x00,0x09);
这是我的代码:
byte[] bytes_length = new byte[Value_of_length];
//copy the byte byte array to the correct length.
Array.Copy(data, Place_of_length, bytes_length, 0,bytes_length.Length
int length = BitConverter.ToInt32(bytes_length, 0);
Int32
需要 32 位,或四个字节。您的数组仅包含两个字节,这意味着您无法将其转换为 Int32
.
您可以将其转换为 Int16
int length = BitConverter.ToInt16(bytes_length, 0);
或者在 Int32
转换之前将数组再扩展两个字节。
此外,您可以完全跳过复制:
int length = BitConverter.ToInt16(data, Place_of_length);
我正在尝试将字节数组转换为 int 值 但是我遇到了一个例外:
"Destination array is not long enough to copy all the items in the collection. Check array index and length."
异常在线:
int length = BitConverter.ToInt32(bytes_length, 0);
byte _length 包含值 (0x00,0x09);
这是我的代码:
byte[] bytes_length = new byte[Value_of_length];
//copy the byte byte array to the correct length.
Array.Copy(data, Place_of_length, bytes_length, 0,bytes_length.Length
int length = BitConverter.ToInt32(bytes_length, 0);
Int32
需要 32 位,或四个字节。您的数组仅包含两个字节,这意味着您无法将其转换为 Int32
.
您可以将其转换为 Int16
int length = BitConverter.ToInt16(bytes_length, 0);
或者在 Int32
转换之前将数组再扩展两个字节。
此外,您可以完全跳过复制:
int length = BitConverter.ToInt16(data, Place_of_length);