我需要将字节数据转换为整数:
byte[] mode = new byte[3] {50, 53, 53};
我尝试使用BitConverter.ToInt32(mode, 0)
转换,但有例外:
目标数组不够长,无法复制集合中的所有项目。检查数组索引和长度。
更新:转换后的预期结果为255。
答案 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()
等任何转换方法。