public static BitSet toBitSet(byte[] array) { BitSet bitSet = new BitSet(8 * array.length); for (int byteNo = 0; byteNo < array.length; byteNo++) { byte b = array[byteNo]; for (int bitNo = 0; bitNo < 8; bitNo++) { if ((b & byteMask(bitNo)) != 0) { bitSet.set(8 * byteNo + bitNo); } } } return bitSet; }
public static byte[] toByteArray(BitSet bitSet) { byte[] array = new byte[bitSet.size() / 8 + 1]; for (int i = bitSet.nextSetBit(0); i >= 0; i = bitSet.nextSetBit(i + 1)) { array[i / 8] |= byteMask(i); } return array; }