如何拆分字节数组并分配给字节变量?
How to split byte array and assign to a byte variable?
在我的 C# 应用程序中,我有一个字节数组,如下所示。
byte[] byteArray = {0x2, 0x2, 0x6, 0x6};
我需要拆分前两个元素,即 0x2 和 0x2,并将其分配给一个字节变量。同样,最后两个元素应分配给另一个字节变量。
即
byte FirstByte = 0x22;
byte SecondByte = 0x66;
我可以将数组拆分为子数组,但我找不到将 byteArray 转换为单个字节的方法。
您可以将它们按位或运算在一起,使用 <<
:
移动其中一个半字节
byte firstByte = (byte)(byteArray[0] | byteArray[1] << 4);
byte secondByte = (byte)(byteArray[2] | byteArray[3] << 4);
您没有指定组合半字节的顺序,所以您可能需要这样:
byte firstByte = (byte)(byteArray[1] | byteArray[0] << 4);
byte secondByte = (byte)(byteArray[3] | byteArray[2] << 4);
在我的 C# 应用程序中,我有一个字节数组,如下所示。
byte[] byteArray = {0x2, 0x2, 0x6, 0x6};
我需要拆分前两个元素,即 0x2 和 0x2,并将其分配给一个字节变量。同样,最后两个元素应分配给另一个字节变量。
即
byte FirstByte = 0x22;
byte SecondByte = 0x66;
我可以将数组拆分为子数组,但我找不到将 byteArray 转换为单个字节的方法。
您可以将它们按位或运算在一起,使用 <<
:
byte firstByte = (byte)(byteArray[0] | byteArray[1] << 4);
byte secondByte = (byte)(byteArray[2] | byteArray[3] << 4);
您没有指定组合半字节的顺序,所以您可能需要这样:
byte firstByte = (byte)(byteArray[1] | byteArray[0] << 4);
byte secondByte = (byte)(byteArray[3] | byteArray[2] << 4);