Java Iterate Bits in Byte Array

arrays, bit, byte, java, loops

Solution

You'd have to write your own implementation of `Iterable<Boolean>` which took an array of bytes, and then created `Iterator<Boolean>` values which remembered the current index into the byte array and the current index within the current byte. Then a utility method like this would come in handy:

private static Boolean isBitSet(byte b, int bit)
{
    return (b & (1 << bit)) != 0;
}

(where `bit` ranges from 0 to 7). Each time `next()` was called you'd have to increment your bit index within the current byte, and increment the byte index within byte array if you reached "the 9th bit".

It's not really hard - but a bit of a pain. Let me know if you'd like a sample implementation...

Problem

How can i iterate bits in a byte array?

Original source