Unsigned Long in Java erstellen

Rupam Yadav 12 Oktober 2023
  1. Vorzeichenlose lange Ganzzahl mit BigInteger in Java erstellen
  2. Unsigned Long mit ULong des jOOU
Unsigned Long in Java erstellen

Eine long-Variable in Java ist immer signiert, was immer negative und positive Werte hat. Wir können aber auch die allgemeine long-Variable mit einigen unten erwähnten Methoden als vorzeichenlose Variable verwenden und behandeln.

Vorzeichenlose lange Ganzzahl mit BigInteger in Java erstellen

In Java bieten primitive Typen wie long eine große Auswahl an Berechnungen mit großen Ganzzahlen.

Um jedoch über diesen Bereich hinauszugehen, müssen wir die Klasse BigInteger verwenden, die wir verwenden können, um mathematische Operationen mit größeren Werten durchzuführen, als die primitiven Typen aufnehmen können. Da der vorzeichenlose long-Wert gross ist, verwenden wir BigInteger.

In diesem Beispiel rufen wir zuerst die Funktion valueOf() der Klasse BigInteger auf und übergeben Long.MAX_VALUE, den maximalen Wert, den sie speichern kann. Dann fügen wir den Wert hinzu, den wir speichern möchten, den wir mit BigInteger.valueOf() erhalten, und übergeben den Wert.

Um den BigInteger-Wert in einen long-Wert umzuwandeln, verwenden wir BigInteger.longValue() und dann machen wir den longValue zu einem unsignierten String, indem wir Long.toUnsignedString() aufrufen und die longValue-Variable übergeben . Wir können sehen, dass der Wert in der Ausgabe gedruckt wird und dass es sich um eine positive Zahl handelt, was bedeutet, dass es sich um einen vorzeichenlosen langen Wert handelt.

import java.math.BigInteger;

public class UnsignedLongExample {
  public static void main(String[] args) {
    BigInteger bigInteger = BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.valueOf(25634));

    long longValue = bigInteger.longValue();

    String longAsUnsignedString = Long.toUnsignedString(longValue);
    System.out.println(longAsUnsignedString);
  }
}

Ausgabe:

9223372036854801441

Wenn wir longValue direkt ausgeben, erhalten wir einen negativen Wert, weil long immer noch eine vorzeichenbehaftete Variable ist, aber die Funktion toUnsignedString() sie in einen String mit dem vorzeichenlosen Wert umwandelt.

System.out.println(longValue);

Ausgabe:

-9223372036854750175

Unsigned Long mit ULong des jOOU

Eine andere Möglichkeit, einen vorzeichenlosen long-Wert zu erhalten und zu verwenden, ist die Verwendung einer Bibliothek eines Drittanbieters namens jOOU. Wir müssen die folgende Maven-Abhängigkeit importieren, um sie zu verwenden.

<dependency>
    <groupId>org.jooq</groupId>
    <artifactId>joou</artifactId>
    <version>0.9.4</version>
</dependency>

Die Klasse ULong in org.jooq.tools.unsigned bietet einige Methoden, um einen long-Wert in einen vorzeichenlosen Wert umzuwandeln. Eine der Methoden ist die valueOf()-Methode, die einen long-Wert annimmt.

Im Programm erstellen wir ein BigInteger und übergeben dann in der ULong.valueOf()-Methode den long-Wert mit bigInteger.longValue(), der ein ULong-Objekt zurückgibt.

import java.math.BigInteger;
import org.jooq.tools.unsigned.ULong;

public class UnsignedLongExample {
  public static void main(String[] args) {
    BigInteger bigInteger = BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.valueOf(25634));

    ULong uLong = ULong.valueOf(bigInteger.longValue());
    System.out.println(uLong);
  }
}

Ausgabe:

9223372036854801441
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java Long