将BYTE数组转换为INT
我有这种代码
static void Main(string[] args) { byte[] array = new byte[2] { 0x00, 0x1f }; Console.WriteLine(BitConverter.ToInt32(array, 0)); }
但它不起作用。 它引发了一个例外:
目标数组不够长,无法复制集合中的所有项目。 检查数组索引和长度。
怎么了?
顾名思义, Int32
是32位或4字节,因此如果要将字节数组转换为Int32
,则需要长度至少为4,(或者更准确地说,它需要至少4个)起始位置后的字节数)。
如果你只有两个字节,也许你想使用ToInt16
?
Int32
由4个字节组成,但该数组只有2个。解决此问题的一种方法是首先转换为Int16
然后转换为Int32
Console.WriteLine((Int32)(BitConverter.ToInt16(array, 0)));
请注意,在此特定用法中,从Int16
转换为Int32
不会更改任何内容,因为数字打印相同。
BitConverter.ToInt32
上的文档说:
ToInt32方法将索引startIndex到startIndex + 3的字节转换为Int32值。
您需要指定至少4个字节,但您只需要2个字节。
上述就是C#学习教程:将BYTE数组转换为INT分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1030323.html