Я создаю BitSet с фиксированным количеством бит. В этом случае длина моей строки, содержащей двоичное представление, составляет 508 символов.
Поэтому я создаю BitSet следующим образом:
BitSet bs = new BitSet(binary.length());
// binary.length() = 508
Но, глядя на размер bs, я всегда получаю размер 512. Я вижу, что всегда есть 4 бита со значением 0, добавленным в конце.
Возможно, есть некоторое непонимание следующей документации:
BitSet(целое количество битов)
Создает набор битов, начальный размер которого достаточно велик для явного представления битов с индексами в диапазоне от 0 до nbits-1.
Дело в том, что BitSet всегда увеличивает свой размер, чтобы его размер был равен степени 2, или почему он больше?