我正在从硬件的网络流中读取数据,该数据以固定标头开头,后跟预期数据的长度,作为System.UInt16,其第一个字节为0x23,第二个字节为0x00。假设字节的顺序根据硬件文档反转,并且我应该将此ushort转换为的值为35,它是从基数16转换为基数10的。
考虑到反向排序的字节,我怎么能以编程方式进行这种转换。我目前正在使用BinaryReader.ReadUInt16()。
更新:请注意,我不打算使用System.Convert.ToString(value, base)
转换为字符串。
答案 0 :(得分:1)
这对您有用吗?
byte a1 = 0x23;
byte a2 = 0x00;
ushort a12 = (ushort)(a1 << 8 | a2); //This what you receive
ushort a21 = (ushort)((a12 & 0xFF00) >> 8 | (a12 & 0xFF) << 8);