Créer Unsigned Long en Java
-
Créer un entier long non signé à l’aide de
BigInteger
en Java -
Long non signé utilisant
ULong
dujOOU
Une variable long
en Java est toujours signée, qui a toujours des valeurs négatives et positives. Mais nous pouvons également utiliser et traiter la variable générale long
comme une variable non signée en utilisant quelques méthodes mentionnées ci-dessous.
Créer un entier long non signé à l’aide de BigInteger
en Java
En Java, les types primitifs comme long
fournissent une vaste gamme de calculs de grands nombres entiers.
Néanmoins, pour aller plus loin que cette plage, nous devons utiliser la classe BigInteger
que nous pouvons utiliser pour effectuer des opérations mathématiques sur des valeurs plus grandes que les types primitifs ne peuvent contenir. Comme la valeur long
non signée est grande, nous utilisons le BigInteger
.
Dans cet exemple, on appelle d’abord la fonction valueOf()
de la classe BigInteger
et on passe Long.MAX_VALUE
, la valeur maximale qu’elle peut stocker. Ensuite, nous ajoutons la valeur que nous voulons stocker, que nous obtenons en utilisant BigInteger.valueOf()
et transmettons la valeur.
Pour convertir la valeur BigInteger
en une valeur long
, nous utilisons BigInteger.longValue()
puis nous transformons la longValue
en chaîne non signée en appelant Long.toUnsignedString()
et en passant la variable longValue
. Nous pouvons voir que la valeur est imprimée dans la sortie et qu’il s’agit d’un nombre positif, ce qui signifie qu’il s’agit d’une valeur longue non signée.
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);
}
}
Production :
9223372036854801441
Si nous imprimons directement la longValue
, nous obtenons une valeur négative car long
est toujours une variable signée mais la fonction toUnsignedString()
la convertit en une chaîne avec la valeur non signée.
System.out.println(longValue);
Production :
-9223372036854750175
Long non signé utilisant ULong
du jOOU
Une autre façon d’obtenir et d’utiliser une valeur longue
non signée consiste à utiliser une bibliothèque tierce appelée jOOU
. Nous devons importer la dépendance Maven suivante pour l’utiliser.
<dependency>
<groupId>org.jooq</groupId>
<artifactId>joou</artifactId>
<version>0.9.4</version>
</dependency>
La classe ULong
dans org.jooq.tools.unsigned
fournit quelques méthodes pour convertir une valeur long
en une valeur non signée. L’une des méthodes est la méthode valueOf()
qui prend une valeur long
.
Dans le programme, on crée un BigInteger
puis dans la méthode ULong.valueOf()
, on passe la valeur long
en utilisant bigInteger.longValue()
qui retourne un objet ULong
.
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);
}
}
Production :
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