[java] unsigned long long에 해당하는 Java?

C ++에서는을 통해 unsigned long long int또는을 통해 64 비트 부호없는 정수에 액세스하는 것을 즐겼습니다 uint64_t. 이제 Java에서 long은 64 비트입니다. 그러나 그들은 서명되었습니다.

Java 기본 형식으로 사용할 수있는 unsigned long (long)이 있습니까? 어떻게 사용하나요?



답변

나는 그렇게 믿지 않는다. 서명 된 길이보다 더 크게하고 싶다면 BigInteger 가 유일한 방법 이라고 생각 합니다.


답변

Java 8부터 unsigned long (unsigned 64 비트)이 지원됩니다. 사용 방법은 다음과 같습니다.

Long l1 = Long.parseUnsignedLong("17916881237904312345");

그것을 인쇄하려면 단순히 l1을 인쇄 할 수는 없지만 먼저 다음을 수행해야합니다.

String l1Str = Long.toUnsignedString(l1)

그때

System.out.println(l1Str);


답변

아니, 없습니다. 기본 long데이터 유형 을 사용하고 서명 문제를 처리하거나 BigInteger.


답변

아니, 없습니다. Java 디자이너는 서명되지 않은 int를 좋아하지 않는다고 기록했습니다. 대신 BigInteger 를 사용하십시오 . 자세한 내용은 이 질문 을 참조하십시오.


답변

Java 8 은 해당 Long 변수를 unsigned Long으로 직접 처리 할 수있는 unsigned long 연산 집합을 제공합니다. 다음은 일반적으로 사용되는 몇 가지 변수입니다.

그리고 더하기, 빼기, 곱하기는 부호있는 long과 부호없는 long에 대해 동일합니다.


답변

수행하려는 작업에 따라 결과는 거의 동일하거나 서명되거나 서명되지 않습니다. 그러나 사소한 작업을 사용하지 않는 한 BigInteger를 사용하게됩니다.


답변

unsigned long의 경우 Guava 라이브러리의 UnsignedLong 클래스를 사용할 수 있습니다 .

다양한 작업을 지원합니다.

  • …을 더한
  • 마이너스
  • 타임스
  • 모드
  • 로 나눈

현재 누락 된 것처럼 보이는 것은 바이트 시프트 연산자입니다. 필요한 경우 Java의 BigInteger를 사용할 수 있습니다.