我很想将字节数组转换为int值 但是我得到了一个例外:
“目标数组不够长,无法复制中的所有项目 采集。检查数组索引和长度。“
例外是在线:
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);
答案 0 :(得分:12)
Int32
需要32位或4个字节。您的数组只包含两个字节,这意味着您无法将其转换为Int32
。
您可以将其转换为Int16
int length = BitConverter.ToInt16(bytes_length, 0);
或在Int32
转换之前将两个以上的字节扩展到数组。
此外,您可以完全跳过复制:
int length = BitConverter.ToInt16(data, Place_of_length);