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日