Manipuler les grands entiers en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à travailler avec l'arithmétique des grands entiers en C en utilisant le type de données long long. Ce laboratoire couvre les étapes suivantes :

Déclarez des variables long long pour gérer les grandes valeurs entières, effectuez des opérations arithmétiques de base telles que l'addition, la soustraction, la multiplication et la division sur ces grands entiers, et affichez et validez les résultats. À la fin de ce laboratoire, vous serez capable de travailler efficacement avec les données entières de grande taille dans vos programmes C.

Déclaration de variables long long

Dans cette étape, vous apprendrez à déclarer et utiliser des variables long long en C pour gérer l'arithmétique des grands entiers. Le type de données long long vous permet de travailler avec des valeurs entières beaucoup plus grandes que les types entiers standard.

Tout d'abord, créons un nouveau fichier C pour démontrer la déclaration de variables long long :

cd ~/project
nano long_integer.c

Maintenant, ajoutez le code suivant au fichier :

#include <stdio.h>

int main() {
    // Déclarez des variables long long
    long long smallNumber = 1234567890;
    long long largeNumber = 9876543210123456789LL;

    // Affichez les valeurs des variables long long
    printf("Petit nombre : %lld\n", smallNumber);
    printf("Grand nombre : %lld\n", largeNumber);

    return 0;
}

Décomposons le code :

  • Nous utilisons long long pour déclarer des variables capables de stocker de très grandes valeurs entières.
  • Le suffixe LL est utilisé pour les littéraux d'entiers importants afin de spécifier explicitement le type long long.
  • Le spécificateur de format %lld est utilisé pour afficher les entiers long long.

Compilez et exécutez le programme :

gcc long_integer.c -o long_integer
./long_integer

Exemple de sortie :

Petit nombre : 1234567890
Grand nombre : 9876543210123456789

Effectuer des opérations arithmétiques sur de grands entiers

Dans cette étape, vous apprendrez à effectuer des opérations arithmétiques sur de grands entiers en utilisant le type de données long long en C. Nous allons étendre l'exemple précédent pour démontrer les opérations mathématiques de base.

Ouvrez le fichier précédent et modifiez-le pour inclure les opérations arithmétiques :

cd ~/project
nano long_integer.c

Remplacez le contenu précédent par le code suivant :

#include <stdio.h>

int main() {
    // Déclarez des variables long long pour les opérations arithmétiques
    long long num1 = 9876543210LL;
    long long num2 = 1234567890LL;

    // Addition
    long long sum = num1 + num2;
    printf("Addition : %lld + %lld = %lld\n", num1, num2, sum);

    // Soustraction
    long long difference = num1 - num2;
    printf("Soustraction : %lld - %lld = %lld\n", num1, num2, difference);

    // Multiplication
    long long product = num1 * num2;
    printf("Multiplication : %lld * %lld = %lld\n", num1, num2, product);

    return 0;
}

Décomposons le code :

  • Nous déclarons deux variables long long, num1 et num2.
  • Nous effectuons l'addition, la soustraction et la multiplication.
  • Nous utilisons le spécificateur de format %lld pour afficher les résultats des grands entiers.
  • Le suffixe LL garantit que les nombres sont traités comme des littéraux long long.

Compilez et exécutez le programme :

gcc long_integer.c -o long_integer
./long_integer

Exemple de sortie :

Addition : 9876543210 + 1234567890 = 11111111100
Soustraction : 9876543210 - 1234567890 = 8641975320
Multiplication : 9876543210 * 1234567890 = 12193263111263526900

Affichage et validation de grands résultats

Dans cette étape, vous apprendrez à afficher et à valider les grands résultats entiers en utilisant différentes techniques de formatage et des vérifications d'erreurs en C.

Ouvrez le fichier précédent et modifiez-le pour inclure l'affichage et la validation avancés :

cd ~/project
nano long_integer.c

Remplacez le contenu précédent par le code suivant :

#include <stdio.h>
#include <limits.h>

int main() {
    // Déclarez des variables long long pour de grands calculs
    long long num1 = 9876543210LL;
    long long num2 = 1234567890LL;

    // Multiplication avec vérification de dépassement
    long long product = num1 * num2;
    printf("Résultat de la multiplication : %lld\n", product);

    // Démonstration de différents formats d'affichage
    printf("Représentation hexadécimale : 0x%llx\n", product);
    printf("Notation scientifique : %lle\n", (double)product);

    // Vérification du dépassement potentiel
    if (product / num1 != num2) {
        printf("Avertissement : Dépassement d'entier potentiel détecté !\n");
    }

    // Valeur maximale de long long
    printf("Valeur maximale de long long : %lld\n", LLONG_MAX);

    return 0;
}

Décomposons le code :

  • Utilisez différents formats d'affichage : décimal, hexadécimal et notation scientifique.
  • Implémentez une vérification simple de dépassement en divisant le produit.
  • Utilisez LLONG_MAX pour afficher la valeur maximale possible de long long.

Compilez et exécutez le programme :

gcc long_integer.c -o long_integer
./long_integer

Exemple de sortie :

Résultat de la multiplication : 12193263111263526900
Représentation hexadécimale : 0xa93263111263526900
Notation scientifique : 1.219326e+19
Valeur maximale de long long : 9223372036854775807

Résumé

Dans ce laboratoire, vous avez appris à déclarer et utiliser des variables long long en C pour gérer les opérations arithmétiques sur de grands entiers. Vous avez commencé par déclarer des variables long long et afficher leurs valeurs pour comprendre la plage de valeurs qu'elles peuvent stocker. Ensuite, vous avez effectué des opérations arithmétiques de base comme l'addition, la soustraction, la multiplication et la division sur de grands entiers en utilisant le type de données long long. Enfin, vous avez appris à afficher et valider les résultats de ces opérations. Les points clés de ce laboratoire sont l'importance d'utiliser le type de données approprié pour les calculs sur de grands entiers et les spécificateurs de format spécifiques nécessaires pour afficher les valeurs long long.