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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn