2016-10-04 6 views
1

J'ai travaillé avec de très gros nombres ces derniers temps, et cela a été tel que même mes longs débordements. Y a-t-il une variable qui ne déborde jamais?Une variable qui ne déborde pas

+0

'BigInteger' va résoudre votre problème. – ifly6

Répondre

1

Peut-être que vous devriez utiliser BigInteger, mais est un type de classe, pas une variable.

BigInteger bi = BigInteger.valueOf(num);

2

BigInteger résout le problème.

Entiers arbitraires de précision arbitraire. Toutes les opérations se comportent comme si les BigIntegers étaient représentés en notation à double complément (comme les types entiers primitifs de Java). BigInteger fournit des analogues à tous les opérateurs entiers primitifs de Java, et toutes les méthodes pertinentes de java.lang.Math. En outre, BigInteger fournit des opérations pour l'arithmétique modulaire, le calcul GCD, le test de primalité, la génération de premier ordre, la manipulation de bits et quelques autres opérations diverses. (Source)

Vous pouvez créer BigInteger comme ceci:

BigInteger int1 = new BigInteger("2"); 
BigInteger int2 = BigInteger.valueOf(4); 

// However, because Java has no operator overloading, you have to do this. 
// int3 would be 6. 
BigInteger int3 = int1.add(int2);