将布尔数组转换为hex数

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

bool[] BoolArray = new bool[] { true,false,true,true,false,false,false,true }; 

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

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

是的,您可以使用BitArray类。 这样的事情应该这样做:

 BitArray arr = new BitArray(BoolArray); byte[] data = new byte[1]; arr.CopyTo(data, 0); 

如果用“8位hex”表示字符串表示,则可以使用BitConverter类:

 string hex = BitConverter.ToString(data); 

怎么样

 static int BoolArrayToInt(bool[] arr) { if (arr.Length > 31) throw new ApplicationException("too many elements to be converted to a single int"); int val = 0; for (int i = 0; i < arr.Length; ++i) if (arr[i]) val |= 1 << i; return val; } static string ToHexStr(int i) { return i.ToString("X8"); } 

免责声明:未经测试