Java Language Initialisation


Exemple

La classe java.math.BigInteger fournit des opérations analogues à tous les opérateurs entiers primitifs de Java et à toutes les méthodes pertinentes de java.lang.Math . Comme le package java.math n'est pas automatiquement disponible, vous devrez peut-être importer java.math.BigInteger avant de pouvoir utiliser le nom de classe simple.

Pour convertir long valeurs long ou int en BigInteger utilisez:

long longValue = Long.MAX_VALUE;
BigInteger valueFromLong = BigInteger.valueOf(longValue); 

ou, pour les entiers:

int intValue = Integer.MIN_VALUE; // negative
BigInteger valueFromInt = BigInteger.valueOf(intValue);

ce qui élargira le intValue entier intValue à long, en utilisant l'extension de bit de signe pour les valeurs négatives, afin que les valeurs négatives restent négatives.


Pour convertir une String numérique en BigInteger utilisez:

String decimalString = "-1";
BigInteger valueFromDecimalString = new BigInteger(decimalString);

Le constructeur suivant est utilisé pour traduire la représentation sous forme de chaîne d’un BigInteger dans la base spécifiée dans un BigInteger .

String binaryString = "10";
int binaryRadix = 2;
BigInteger valueFromBinaryString = new BigInteger(binaryString , binaryRadix);

Java prend également en charge la conversion directe des octets en une instance de BigInteger . Actuellement, seul le big endian signé et signé peut être utilisé:

byte[] bytes = new byte[] { (byte) 0x80 }; 
BigInteger valueFromBytes = new BigInteger(bytes);

Cela va générer une instance BigInteger avec la valeur -128 car le premier bit est interprété comme le bit de signe.

byte[] unsignedBytes = new byte[] { (byte) 0x80 };
int sign = 1; // positive
BigInteger valueFromUnsignedBytes = new BigInteger(sign, unsignedBytes);

Cela générera une instance BigInteger avec la valeur 128 car les octets sont interprétés comme un nombre non signé et le signe est explicitement défini sur 1, un nombre positif.


Il existe des constantes prédéfinies pour les valeurs communes:

  • BigInteger.ZERO - valeur de "0".
  • BigInteger.ONE - valeur de "1".
  • BigInteger.TEN - valeur de "10".

Il y a aussi BigInteger.TWO (valeur de "2"), mais vous ne pouvez pas l'utiliser dans votre code car il est private .