2015-01-14 2 views
-1

BigInteger에서 1 비트 수를 알아야하는 문제를 해결하고 있습니다.BigInteger에서 1 비트의 수를 계산하는 방법은 무엇입니까?

미리 감사드립니다.

+1

BigInteger가 부정적입니까 (2 진수 정수이므로 왼쪽으로 1 비트가 무한합니다)? –

+0

지금까지 해결 한 문제의 양은 어느 정도입니까? 코드가 있습니까? 그들이 당신이 말한 것처럼, SO 군중이이 문제를 해결해야하는 것처럼 들립니다. – reto

+0

BigInteger에는 절대 음수 값이 저장되지 않습니다. –

답변

0

BigInteger에서 .bitCount()를 사용할 수 있습니다. 수동으로 해결해야하는 경우가 아니면 일반적인 Java 비트 연산을 사용할 수 있습니다.

+0

고마워,하지만 Java API를 BigIntegers bitCount() 그것은 그것을 BigIntegers 1 비트 수를 반환하지 않습니다. 대신이 부호 비트와 다른이 BigInteger의 2의 보수 표시에있는 비트 수를 리턴합니다. 제발 –

+1

7은 000 ... 0111로 표현됩니다. 부호 비트는 0 인 첫 번째 비트입니다. -7은 11111 ... 1001로 표시됩니다. 부호 비트는 여기에 1이고, 2 개의 0이 있기 때문에 다른 2 비트가 있습니다. (7) .bitCount() = 3 및 (-7) .bitCount() = 2입니다. –

0

0을 입력하십시오. 이렇게하면 원래 입력에 1이 있던 모든 비트가 1로 설정됩니다. 그런 다음 출력에 설정된 비트 수를 계산할 수 있습니다.

관련 문제