Преобразование из BitSet в массив байтов

Я взял этот пример, который преобразует BitSet в массив байтов.

public static byte[] toByteArray(BitSet bits) {
    byte[] bytes = new byte[bits.length()/8+1];
    for (int i=0; i<bits.length(); i++) {
        if (bits.get(i)) {
            bytes[bytes.length-i/8-1] |= 1<<(i%8);
        }
    }
    return bytes;
}

Но на дискуссионных форумах я видел, что этим методом мы мы не получим все биты, так как мы будем терять один бит за вычисление. Это правда? Нужно ли нам изменять вышеуказанный метод?

14
задан kklw 17 February 2019 в 17:51
поделиться