В чем разница между `bitCount()` и `bitLength()` `BigInteger`JAVA

Программисты JAVA общаются здесь
Anonymous
В чем разница между `bitCount()` и `bitLength()` `BigInteger`

Сообщение Anonymous »

Описания bitCount() и bitLength() довольно загадочны:


public int bitCount( )

Возвращает количество битов в представлении с двоичным дополнением этого BigInteger, которые отличаются от его знакового бита. Этот метод полезен при реализации наборов бит-векторов поверх BigInteger.

Возвраты:
количество битов в представлении с дополнением до двух этого BigInteger, которое отличается от его знаковый бит.





public int bitLength()

Возвращает количество битов в минимальном представлении с дополнением до двух для этого BigInteger, исключая знаковый бит. Для положительных BigInteger это эквивалентно количеству битов в обычном двоичном представлении. (Вычисляет (ceil(log2(this < 0 ? -this : this+1))).)

Возвращает:
количество битов в минимальной двойке -дополняющее представление этого BigInteger, исключая знаковый бит.


Какова реальная разница между этими двумя методами и когда мне следует использовать какой ?

Я иногда использовал bitCount для подсчета количества установленных бит в положительном целом числе, но я использовал bitLength лишь изредка и обычно когда Я имел в виду bitCount, потому что различия между описаниями слишком тонкие, чтобы я мог сразу их понять.

Google Attractor: Java BigInteger bitCount против длины бита

Подробнее здесь: https://stackoverflow.com/questions/444 ... biginteger

Вернуться в «JAVA»