【问题标题】:LSB from array of bytes C#来自字节数组 C# 的 LSB
【发布时间】:2014-07-09 20:57:30
【问题描述】:

我需要从字节数组中选择一个包含最低有效位的数组到 BitArray。我有搜索 lsb 的代码。但我不知道如何将此数组添加到 BitArray

private static bool GetBit(byte b)
        {
            return (b & 1) != 0;
        }

【问题讨论】:

  • “将此数组添加到 BitArray”是什么意思?不清楚你在这里问什么。如果您给出一个带有预期输出的完整示例,并带有“不确定在此处做什么”部分,那将非常有帮助。

标签: c# lsb


【解决方案1】:
    static void Main(string[] args)
    {
        byte[] bytes = new byte[] { 5, 7, 8, 1, 3, 5, 6, 1, 0 };
        byte[] b = bytes.Where(q => GetBit(q) == true).ToArray();
        BitArray bitArray = new BitArray(b);            
        Console.Read();
    }

    private static bool GetBit(byte b)
    {
        return (b & 1) != 0;
    }

【讨论】:

  • 请在您的代码中添加某种解释。您的Where 子句也可以简化为Where(GetBit)
【解决方案2】:

所以首先我会将它转换为布尔数组,然后从这个布尔数组创建 BitArray:

static void Main(String[] args)
{
    byte[] byteArray = new byte[] { 1, 2, 3, 4, 5, 6 };
    BitArray bitArray = transform(byteArray);
}

private static bool GetBit(byte b)
{
    return (b & 1) != 0;
}

private static BitArray transform(byte[] byteArray)
{
    bool[] boolArray = new bool[byteArray.Length];
    for(int i = 0; i < byteArray.Length; i++)
    {
        boolArray[i] = GetBit(byteArray[i]);
    }
    return new BitArray(boolArray);
}

编辑:
这是数组数组的解决方案:

static void Main(String[] args)
{
    byte[][] byteArrays = new byte[2][];
    byteArrays[0] = new byte[] { 1, 2, 3, 4, 5, 6 };
    byteArrays[1] = new byte[] { 1, 2, 3, 4, 5, 6 };
    BitArray[] bitArrays = new BitArray[byteArrays.Length];
    for(int i = 0; i < byteArrays.Length; i++)
    {
        byte[] byteArray = byteArrays[i];
        bitArrays[i] = transform(byteArray);
    }
}

private static bool GetBit(byte b)
{
    return (b & 1) != 0;
}

private static BitArray transform(byte[] byteArray)
{
    bool[] boolArray = new bool[byteArray.Length];
    for(int i = 0; i < byteArray.Length; i++)
    {
        boolArray[i] = GetBit(byteArray[i]);
    }
    return new BitArray(boolArray);
}

【讨论】:

  • 非常感谢。很抱歉,但如果我有这样的数组 byte[][],我需要在这段代码中更改什么?
猜你喜欢
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多