// n = length in bits static byte[] bitSetToBytes(BitSet bs, int n) { byte[] bytes = new byte[(n+7)/8]; for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) bytes[i/8] |= 1 << (i%8); return bytes; }