Créer Unsigned Long en Java

Rupam Yadav 12 octobre 2023
  1. Créer un entier long non signé à l’aide de BigInteger en Java
  2. Long non signé utilisant ULong du jOOU
Créer Unsigned Long en Java

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
Auteur: Rupam Yadav
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

Article connexe - Java Long