static void Main(string[] args){//接收到数据: 0x01 0x02,大端字节序(big endian)高位字节是0x01,低位字节是0x02//接收到的字节直接拼成 0x0102var value = 0x0102;//******************************* 方法一int num = 0x01;num = num << 8;num = num+ 0x02;//********************************//********************************** 方法二//用字节数组承载byte[] myByteArray2 = new byte[] { 0x01, 0x02 };//计算机是小端字节序,使用BitConverter方法的话先读到的就是低位字节,后读到的就是高位字节。var A = BitConverter.IsLittleEndian;//A为true//所以这里翻转一下让01为高位,02为低位myByteArray2 = myByteArray2.Reverse().ToArray();UInt16 number = BitConverter.ToUInt16(myByteArray2, 0); //从0位置默认取两个,不会的BitConverter的可以看我前面的文章//**********************************//**********************************方法三var a = Convert.ToInt32("0x0102", 16);//***********************************Console.WriteLine("方法一:"+num);Console.WriteLine("方法二:" + number);Console.WriteLine("方法三:" + a);Console.Read();}
结果:
再贴一下自己之前写的关于字节数据转换的文章;C#short 、ushort、 byte、 byte[]转换分析_c# ushort-CSDN博客
好好理解一下大小端模式比较好理解;