byte[] bytes = { 0, 7, 14, 16, 10, 52, 55, 7, 87, 15, 14, 32, 54, 7, 87, 15, 14, 32, 54 };
如何把 bytes[2],bytes[3],合并成一个int 类型数字。
不知道你要把哪一位放到int的高位上去,大致就是如下这样
byte hign = bytes[2]; byte low = bytes[3]; int val = (high & 0xFF) << 8 | low;
byte的取值不能大于255,也就是说bytes[x]总是不会大于255,在这个范围内是可以直接变成int来使用。
现在的问题变成了把两个不大于255的int合并成一个int数字,问题就简单了吧~
不太明白,你的意思是 int a=bytes[2]+bytes[3]; 这样得到的就是对的值?
@豌豆夹:
不是的,
如果你是希望 bytes[1]+bytes[2] => 714 这样的话,int.parse(bytes[1].tostring()+bytes[2].tostring())
1 byte[] bytes = { 0, 7, 14, 16, 10, 52, 55, 7, 87, 15, 14, 32, 54, 7, 87, 15, 14, 32, 54 }; 2 int sum = Convert.ToInt32(bytes[2].ToString() + bytes[3].ToString()); 3 Console.WriteLine(sum);
你的意思是有2个字节你要把他当成int类型读出值来。
但int类型是32字节的。当成短整形读的话倒是可以简单的做法就是
byte[1]*(短整形)(2^8)+byte[2]