如何从BitArray中获取单个字节(没有字节[])

本文关键字:字节 单个 BitArray 获取 | 更新日期: 2023-09-27 18:28:01

我想知道,有没有办法将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直接更改为字节。。。有什么想法吗?

如何从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 decimal=1001