我想知道,是否有一种方法可以将BitArray转换为字节(与字节数组相对)?我将在BitArray中有8位。

 BitArray b = new BitArray(8);


//in this section of my code i manipulate some of the bits in the byte which my method was given.

 byte[] bytes = new byte[1];
 b.CopyTo(bytes, 0);

这就是我到目前为止所拥有的...。如果我必须将字节数组更改为字节,或者是否可以将BitArray直接更改为字节,都没关系。我希望能够将BitArray直接更改为一个字节...有什么想法吗?

最佳答案

您可以编写扩展方法

    static Byte GetByte(this BitArray array)
    {
        Byte byt = 0;
        for (int i = 7; i >= 0; i--)
            byt = (byte)((byt << 1) | (array[i] ? 1 : 0));
        return byt;
    }

您可以像这样使用
        var array = new BitArray(8);
        array[0] = true;
        array[1] = false;
        array[2] = false;
        array[3] = true;

        Console.WriteLine(array.GetByte()); <---- prints 9

9位小数= 1001(二进制)

关于c# - 如何从BitArray中获取单个字节(没有byte [])?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9747611/

10-13 07:35