> LeekScript
Cette fonctionnalité n'est pas encore implémentée. Elle arrivera prochainement dans le jeu.
BigInteger est un type du Leekscript ajouté dans la mise à jour ???. Il s'agit d'une nouvelle primitive qui est compatible avec les autres types existants, qui sert notamment à faciliter la création et l'optimisation des bitmaps.
Un BigInteger est un nombre entier qui se comporte quasiment comme un Integer, mais est (presque) illimité en taille : un Integer classique est limité à 64 bits (263-1), un BigInteger peut contenir des valeurs bien plus grandes.
Note : Ce type n'a pas vocation à remplacer partout les types existants (car il coute plus cher en opérations) et n'est pas utile pour résoudre l'énigme du Potiron Maléfique.
On utilise la lettre L pour désigner un nombre comme BigInteger :
var a = 1L var b = 0b111L big_integer b = 5 big_integer c = -3L
S'il est déjà très grand à la déclaration, il est détecté automatiquement :
var a = 123445321324234567895431235648945674894561564523489756489 // BigInteger var b = 1 la valeur est coupée à 64 bits)
La plupart des opérations et fonctions qui peuvent utiliser des Integer ou Real sont supportées, avec au pire un cast vers l'un de ces types. L'opérateur >> fonctionne comme >>> et l'opérateur / fonctionne comme \. Une opération avec un BigInteger donne le plus souvent un résultat de type BigInteger :
var a = 5.0 + 5L // BigInteger var b = 123456789123456789L % 234567 // BigInteger
Les fonctions utilisées avec un BigInteger ont un coût en opérations et en mémoire en fonction de leur taille :
var a = 2L ** 200_000_000; // 200 000 ops, 3 Mo ram a -= 1; // 400 000 ops, car a est très grand var x = 1L // 9 ops
Les nombres très grands sont coupés pour réduire les calculs et éviter de saturer l'affichage (les fonctions binString et hexString l'affichent en entier avec un coût ajusté) :
debug(1L
La fonction leadingZeros ne fonctionne pas sur un BigInteger car il n'a pas de taille prédéfinie. Il faut à la place utiliser bitLength qui renvoie le nombre de bits nécessaires pour contenir le nombre.
Pour lire ou modifier un BigInteger bit par bit, il vaut mieux utiliser les fonctions setBit et testBit, qui coutent moins cher en opérations que les opérateurs binaires >> et >>.
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.