【问题标题】:How to split byte array and assign to a byte variable?如何拆分字节数组并分配给字节变量?
【发布时间】:2015-05-05 12:07:31
【问题描述】:

在我的 C# 应用程序中,我有一个字节数组,如下所示。

byte[] byteArray = {0x2, 0x2, 0x6, 0x6};

我需要拆分前两个元素,即 0x2 和 0x2,并将其分配给一个字节变量。同样,最后两个元素应该分配给另一个字节变量。

byte FirstByte = 0x22;
byte SecondByte = 0x66;

我可以将数组拆分为子数组,但我无法找到将 byteArray 转换为单个字节的方法。

【问题讨论】:

  • 所以数组中的每个字节只包含一个半字节,对吗?
  • 是的。没错。
  • 简单地列出您的要求并寻求帮助并不是在本网站上提出问题的好方法。请参阅Why is "Can someone Help me" not an "actual" question。向我们展示是如何尝试自己解决问题的,然后向我们确切地展示结果是什么,并告诉我们您为什么觉得它不起作用。

标签: c# arrays methods split byte


【解决方案1】:

您可以将它们按位或在一起,使用<< 移动其中一个半字节:

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2015-12-06
    • 2013-05-09
    • 2016-06-20
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多