Пройдите одну битовую маску на единицу, логически добавив к ней битовую маску.
void main() {
print(asBools(7, 4)); // prints [false, true, true, true]
}
/// Convert a bitmap to a [List] of [bool]s.
///
/// [val] is the bitmap, [bits] is the number of relevant bits and therefore
/// the length of the returned list.
///
/// Assumes the bits are in the least significant bits of [val].
List<bool> asBools(int val, int bits) {
var list = List<bool>(bits);
var mask = 1 << (bits - 1);
for (var i = 0; i < bits; i++, mask >>= 1) {
list[i] = val & mask != 0;
}
return list;
}