【发布时间】:2016-04-05 11:52:53
【问题描述】:
我正在尝试将字节数组转换为 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);
【问题讨论】:
-
此代码示例似乎不完整。至关重要的是,我们看不到 Value_of_length 的来源。
-
如您所知,ToInt32() 需要一个至少有 4 个字节的数组。你只有 2 个,你最多可以调用 ToInt16()。
-
Int32 之所以这么称呼是因为它有 32 位(4 字节长)
-
int 长度 = (int)BitConverter.ToInt16(bytes_length, 0);
标签: c# arrays bitconverter