How can I convert an int to an array of bool?
You can use the BitArray.
var bools = new BitArray(new int[] { yourInt }).Cast<bool>().ToArray();
Int32 number = 10;
var array = Convert.ToString(number, 2).Select(s => s.Equals('1')).ToArray();
--Edit--
Using extension method:
public static class Int32Extensions
{
public static Boolean[] ToBooleanArray(this Int32 i)
{
return Convert.ToString(i, 2 /*for binary*/).Select(s => s.Equals('1')).ToArray();
}
}
Usage:
var boolArray = number.ToBooleanArray();
An int
should map nicely to BitVector32
(or BitArray
)
int i = 4;
var bv = new BitVector32(i);
bool x = bv[0], y = bv[1], z = bv[2]; // example access via indexer
However, personally I'd just use shifts (>>
etc) and keep it as an int
. The bool[]
would be much bigger