将布尔数组转换为十六进制数

Ice*_*ind 3 .net c# binary boolean

有没有一种简单的方法将布尔值数组转换为8位十六进制等效值?例如,如果我有

 bool[] BoolArray = new bool[] { true,false,true,true,false,false,false,true };
Run Code Online (Sandbox Code Playgroud)

如果true值= 1且false值= 0,那么我想要一个将上面的数组转换为0xB1(10110001)的方法或函数.

是否存在这样的功能或方法?顺便说一句,我正在使用C#.

Guf*_*ffa 8

是的,你可以使用这BitArray门课.这样的事情应该这样做:

BitArray arr = new BitArray(BoolArray);
byte[] data = new byte[1];
arr.CopyTo(data, 0);
Run Code Online (Sandbox Code Playgroud)

如果用"8位十六进制"表示字符串表示,则可以使用BitConverter该类:

string hex = BitConverter.ToString(data);
Run Code Online (Sandbox Code Playgroud)