字节到整数转换

时间:2018-02-03 04:52:58

标签: c#

我需要将字节数据转换为整数:

byte[] mode = new byte[3] {50, 53, 53};

我尝试使用BitConverter.ToInt32(mode, 0)转换,但有例外:

  

目标数组不够长,无法复制集合中的所有项目。检查数组索引和长度。

更新:转换后的预期结果为255。

1 个答案:

答案 0 :(得分:3)

目前尚不清楚您要实现的目标,但BitConverter.ToInt32需要4个字节的数据才能使用,而您传递的是3个字节的数组。添加一个字节,它将起作用,这意味着它不会抛出异常并进行转换,但我不确定它是否会让你想要你想要的。

示例:

byte[] mode = new byte[4] {50, 53, 53, 00};
var result = BitConverter.ToInt32(mode, 0); //Result will be 3487026

编辑显然这个数组代表文本,而不是整数。要转换它,您需要知道使用的编码。如果保证只有数字,那么你可以使用ASCII:

byte[] mode = new byte[3]{50, 53, 53};
string result = System.Text.Encoding.ASCII.GetString(mode); //Result will be 255

现在,如果你想将它转换为整数,那么它很简单。使用int.Parse()Convert.ToInt32()等任何转换方法。