Gui*_*rme 2 c# optimization byte boolean
简单的问题:考虑到bool(true,false)与位(1,0)相同,在C#中将8个bool转换为字节的正确方法是什么?
例子:
true,true,true,true,true,true,true,true == 11111111 == 255
true,false,false,false,false,false,false,false == 10000000 == 128
false,false,false,false,false,false,false,false == 00000000 == 0
以上是第一部分.我想创建一个扩展方法,如下所示:
public static byte[] ToByteArray(this bool[] bitArray)
{
// stuff here
return byteArray;
}
Run Code Online (Sandbox Code Playgroud)
结果必须是byteArray,其元素比bool数组少八倍.
Tig*_*ran 11
你可能会搜索BitArray构造函数(Boolean [])
对于rapresenting位你有特殊的结构BitArray在C#.所以你的代码看起来像这样:
var booleans = new bool[]{true, false, false, false};
var bitArray = new BitArray(booleans);
Run Code Online (Sandbox Code Playgroud)