문제

C++에서는 다음을 통해 64비트 부호 없는 정수에 액세스할 수 있는 것이 즐거웠습니다. unsigned long long int, 또는 다음을 통해 uint64_t.이제 Java에서 long은 64비트라는 것을 알고 있습니다.그러나 서명되었습니다.

Java 프리미티브로 사용할 수 있는 부호 없는 long(long)이 있습니까?어떻게 사용하나요?

도움이 되었습니까?

해결책

나는 그렇게 믿지 않는다. 서명 한 것보다 더 크게 가고 싶으면 Biginteger 유일하게 (상자 밖에서) 이동하는 방법입니다.

다른 팁

Java 8을 시작하면 서명되지 않은 긴 길이 (서명되지 않은 64 비트)에 대한 지원이 있습니다. 사용할 수있는 방법은 다음과 같습니다.

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

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

String l1Str = Long.toUnsignedString(l1)

그 다음에

System.out.println(l1Str);

아니, 없어. 원시를 사용해야합니다 long 데이터 유형 및 서명 문제를 처리하거나 다음과 같은 클래스를 사용합니다. BigInteger.

아니요, 없습니다. Java의 디자이너들은 서명되지 않은 INT를 좋아하지 않는다고 말하면서 기록되어 있습니다. a Biginteger 대신에. 보다 이 질문 자세한 내용은.

자바 8 Long 변수를 unsigned Long으로 직접 처리할 수 있는 unsigned long 연산 세트를 제공합니다. 일반적으로 사용되는 작업은 다음과 같습니다.

그리고 덧셈, 뺄셈, 곱셈은 부호 있는 Long과 부호 없는 Long의 경우 동일합니다.

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

서명되지 않은 오랫동안 사용할 수 있습니다 unsignedlong 수업 구아바 도서관:

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

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

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

Java에는 서명되지 않은 유형이 없습니다. 이미 언급했듯이 BigInteger의 오버 헤드를 in거나 JNI를 사용하여 기본 코드에 액세스하십시오.

org.apache.axis.types 패키지는 a에 있습니다

unsignedlong 클래스.

Maven의 경우 :

<dependency>
    <groupId>org.apache.axis</groupId>
    <artifactId>axis</artifactId>
    <version>1.4</version>
</dependency>

Java 8에서 보입니다 일부 방법이 추가됩니다 서명되지 않은 한 오래된 선을 취급하기 위해 오랫동안. 해결 방법처럼 보이지만 때로는 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top