Maison > développement back-end > C++ > le corps du texte

Comment détecter un débordement d'entier en C/C++ ?

王林
Libérer: 2023-08-31 13:53:09
avant
969 Les gens l'ont consulté

Comment détecter un débordement dentier en C/C++ ?

Le seul moyen sûr est de vérifier avant qu'un débordement ne se produise. Il existe cependant des moyens informels de vérifier le dépassement d'entier. Ainsi, si votre objectif est de détecter un débordement lors de l'ajout d'entiers non signés, vous pouvez vérifier si le résultat est réellement inférieur aux deux valeurs ajoutées. Par exemple ,

exemple de code

unsigned int x, y;
unsigned int value = x + y;
bool overflow = value < x; // Alternatively "value < y" should also work
Copier après la connexion

En effet, si x et y sont tous deux des entiers non signés, leur valeur ne peut pas être supérieure à n'importe lequel d'entre eux s'ils sont ajoutés et débordent, car ils doivent être supérieurs au plus grand possible Des entiers non signés sont nécessaires pour contourner et dépasser ces valeurs.

Une autre approche consiste à essayer d'accéder à l'indicateur de débordement dans le CPU. Certains compilateurs y donnent accès pour que vous puissiez le tester, mais ce n'est pas standard.

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!

Étiquettes associées:
source:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal