我想知道,有没有办法将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直接更改为一个字节...任何想法?
答案 0 :(得分:3)
您可以编写扩展方法
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