ushort表示无符号的整型数据类型,它的范围是0到65535,在内存中占2个字节,所以它是一个16位的无符号整数,对应了.NET中的System.UInt16。

声明和初始化

ushort myShort = 65535;

在以上声明中,整数 65535 从 int 隐式转换为 ushort。 如果整数超出了 ushort 的范围,将产生编译错误。

internal class Program
 
 {
 
     static void Main(string[] args)
 
     {
 
         ushort number = 12345;//变量声明
 
         Console.WriteLine($"number = {number}");//输出值
 
         Console.WriteLine($"number的类型为{number.GetType()}");//变量类型
 
         Console.WriteLine($"short占内存大小为{sizeof(ushort)}");//内存大小
 
         Console.WriteLine($"short最小值{ushort.MinValue}");
 
         Console.WriteLine($"short最大值{ushort.MaxValue}");
 
  
 
         byte[] array = new byte[2];
 
         array[0] = 2;//低位在后
 
         array[1] = 1;//高位在前
 
         ushort result = BitConverter.ToUInt16(array,0);
 
         Console.WriteLine($"byte数组转ushort为:{result}");
 
  
 
         var v = Console.ReadKey();
 
     }

输出结果:

number = 12345
number的类型为System.UInt16
short占内存大小为2
short最小值0
short最大值65535
byte数组转ushort为:258

在前面的章节中我们学习了byte,它表示一个字节,长度为8位,而ushort可以表示2个字节长度的数据,一共是16位,于是,一个拥有两个元素的byte数组也可以转换成一个ushort。因为它们的长度都是相等的。

如上面的例子,array是一个byte数组,它有两个元素。下标为0的元素表示低位,下标为1的元素表示高位,在高位中,一个1就代表256,而在低位中,一个1就表示1。所以结果就是256+2=258。

byte数组经常使用于上位机软件开发过程中,特别是涉及到通讯协议,是程序员必须要掌握的内容。

——重庆教主 2023年12月27日