Maison > développement back-end > C++ > Pourquoi 'long long' est-il essentiel pour gérer de grands entiers en C/C ?

Pourquoi 'long long' est-il essentiel pour gérer de grands entiers en C/C ?

Mary-Kate Olsen
Libérer: 2024-11-08 09:18:02
original
764 Les gens l'ont consulté

Why is  'long long'  essential for handling large integers in C/C  ?

Comprendre « long long » en C/C

En C/C, la gamme de types de données est cruciale pour gérer les valeurs numériques. Le type de données « long long » est introduit pour prendre en charge des valeurs entières plus grandes que le type « long » standard, ce qui permet des opérations encore plus précises.

Considérez l'extrait de code C/C suivant :

#include <stdio.h>

int main() {
    int num1 = 1000000000;
    long num2 = 1000000000;
    long long num3;
    long long num4 = ~0;

    printf("%u %u %u", sizeof(num1), sizeof(num2), sizeof(num3));
    printf("%d %ld %lld %llu", num1, num2, num3, num4);
    return 0;
}
Copier après la connexion

Une fois exécuté, ce code affiche le résultat suivant :

4 4 8
1000000000 1000000000 0 18446744073709551615
Copier après la connexion

Le résultat démontre des résultats intéressants. comportements :

  • La taille de « long long » est de 8 octets, soit le double de celle de « int » et de « long ».
  • La valeur de « num1 » s'inscrit dans un « int » ', il est donc imprimé avec précision.
  • 'num2' a la même valeur que 'num1', mais son type 'long' lui permet de représenter des valeurs plus grandes. nombres.
  • 'num3' ne reçoit aucune valeur initialement, il s'imprime donc sous la forme 0.
  • 'num4' se voit attribuer l'inverse au niveau du bit de 0, ce qui donne sa valeur maximale possible dans un ' long long'.

Maintenant, décommentons le commentaire line:

num3 = 100000000000;
Copier après la connexion

La compilation échoue avec l'erreur : "erreur : la constante entière est trop grande pour le type long." En effet, la valeur littérale « 100000000000 » dépasse la valeur maximale pouvant être représentée par un type « long ». Pour résoudre ce problème, nous devons préciser que ce littéral est un 'long long' en utilisant le suffixe LL :

num3 = 100000000000LL;
Copier après la connexion

Avec cette modification, le code se compile et s'exécute avec succès. La sortie inclut désormais la valeur correcte pour 'num3' :

4 4 8
1000000000 1000000000 100000000000 18446744073709551615
Copier après la connexion

Ce code illustre l'importance des types de données et l'utilisation du type 'long long' pour gérer de grandes valeurs entières dans la programmation C/C.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal