Position actuelle: Accueil> Derniers articles> Méthode pratique pour la mise en œuvre des opérations de changement de grandeur dans les bibliothèques PHP et GMP

Méthode pratique pour la mise en œuvre des opérations de changement de grandeur dans les bibliothèques PHP et GMP

M66 2025-07-09

introduction

En PHP, l'opérateur de déplacement convient aux entiers normaux, mais lorsque la valeur dépasse la plage entière, le fonctionnement de déplacement normal échouera ou débordera. Pour résoudre cette limitation, la bibliothèque GMP (GNU multiple précision) peut être utilisée, qui prend en charge les opérations d'entiers de taille arbitraire et fournit une solution fiable pour les opérations de déplacement de grands nombres.

Installation et activation de la bibliothèque GMP

Dans la plupart des environnements Linux, les extensions GMP peuvent être installées via le gestionnaire de packages, par exemple:

 <span class="fun">sudo apt-get install php-gmp</span>

Une fois l'installation terminée, vous devez activer l'extension GMP dans php.ini pour vous assurer que les éléments de configuration pertinents ne sont pas commentés:

 <span class="fun">Extension = GMP</span>

Après le redémarrage du service PHP, exécutez PHP -M | GMP GMP pour vérifier si l'extension GMP est chargée avec succès.

Utilisez la bibliothèque GMP pour implémenter des opérations de quart de grandeur

La bibliothèque GMP fournit des fonctions flexibles pour implémenter les déplacements de grands nombres. L'exemple suivant montre comment simuler les opérations de déplacement en multipliant et en divisant par une puissance de 2:

 <?php
$number = gmp_init("12345678901234567890"); // Initialiser les grands nombres

// Se déplacer à gauche2Peu
$shiftedLeft = gmp_mul($number, gmp_pow(2, 2));

// 向右Peu移3Peu
$shiftedRight = gmp_div($number, gmp_pow(2, 3));

echo "Valeur d&#39;origine:" . $number . "\n";
echo "Se déplacer à gauche2Peu后的结果:" . $shiftedLeft . "\n";
echo "向右Peu移3Peu后的结果:" . $shiftedRight . "\n";
?>

Dans le code ci-dessus, d'abord, de grands nombres sous la forme de chaîne sont convertis en objets GMP via GMP_INIT . En combinant GMP_MUL et GMP_POW , le décalage gauche est équivalent à une puissance de multipliée par 2; Par GMP_DIV , le bon changement équivaut à une puissance de division par 2.

Résumer

En utilisant l'extension GMP de PHP, de grands nombres peuvent être facilement déplacés, évitant efficacement le débordement entier et la perte de précision. Cet exemple démontre des méthodes d'utilisation de base pour aider les développeurs à gérer facilement les exigences de déplacement de n'importe quel entier de taille.

Références

  • MANUEL PHP: GMP - GNU multiple précision. (https://www.php.net/manual/en/book.gmp.php)
  • GMP - bibliothèque arithmétique de précision multiple GMP. (https://gmplib.org/)