Csharp/C#教程:将BYTE数组转换为INT分享


将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

(0)
上一篇 2022年1月13日
下一篇 2022年1月13日

精彩推荐