BigDecimal은 비트 조작을 지원합니까? 그렇다면 누군가가 이것에 대한 좋은 가이드를 가르쳐 주시겠습니까?Java에서의 BigDecimal 비트 조작
그렇지 않은 경우 BigDecimal 변수를 2의 제곱으로 나누는 가장 좋은 방법은 무엇입니까?
BigDecimal은 비트 조작을 지원합니까? 그렇다면 누군가가 이것에 대한 좋은 가이드를 가르쳐 주시겠습니까?Java에서의 BigDecimal 비트 조작
그렇지 않은 경우 BigDecimal 변수를 2의 제곱으로 나누는 가장 좋은 방법은 무엇입니까?
이름에서 알 수 있듯이 BigDecimal
은 십진수 표현에 저장됩니다. 따라서 2의 거듭 제곱으로 나누는 가장 빠른 방법은 2의 거듭 제곱으로 나누는 것입니다. 은이 비 정수 값을 생성 할 수 있기 때문에 은 쉬프트 - 왼쪽 및 쉬프트 - 오른쪽이지만 only in base-10 (심지어 비트 쉬프트와 다르게 동작합니다).
나는 여기에 BigInteger
을 의미한다고 생각합니다. BigDecimal
은 부동 소수점 값에 대해 십진수 표현을 사용하므로 비트 조작에 적합하지 않습니다.
BigInteger
은 곱셈/나눗셈에 대해 각각 2 진수에 대해 .shiftLeft()
및 .shiftRight()
의 왼쪽 및 오른쪽 시프트 연산을 사용하므로이를 사용할 수 있습니다.
는 또한 작업과 같은 .bitCount()
, .bitLength()
, .{clear,set}Bit()
, .and()
, .or()
, .andNot()
몇 사람이 있습니다. 그렇다고해도 이해가 안되기 때문에 비트 단위가 아닙니다.
감사하지만 BigDecimal을 의미했습니다. 얼마나 바보! – jobin
@fge - 훌륭한 설명! – nanosoft