Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Applications des Types Entiers | Types de Données Numériques
Types de Données C++

book
Applications des Types Entiers

Nous avons découvert qu'assigner une valeur dépassant la plage de -2,147,483,648 à 2,147,483,647 ne provoquerait pas d'erreur. Au lieu de cela, cela entraînera un dépassement.

Rappelez-vous

Un dépassement se produit lorsqu'un calcul produit un résultat trop grand pour être représenté par le type de données utilisé.

Par exemple, si vous essayez de stocker une valeur plus grande que la valeur maximale représentable pour un type entier, un dépassement se produira, et le résultat s'enroulera ou sera tronqué, entraînant un comportement inattendu dans votre programme.

Cela peut entraîner des bogues critiques dans vos programmes, donc c'est quelque chose à garder à l'esprit. Nous apprendrons comment gérer les nombres trop grands dans le prochain chapitre.

Tâche

Swipe to start coding

  1. Corrigez l'expression pour qu'elle ne provoque plus de dépassement.
  2. Changez l'ordre des opérations, divisez d'abord chaque nombre par 2 puis ajoutez-les.

Solution

cpp

solution

#include <iostream>

int main()
{
int first = 1502365230;
int second = 1262530350;
// The following code demonstrates a potential issue with integer overflow
// Although the final result will be within the range of an integer
// Adding two large numbers together can cause overflow before the division by 2 is performed
std::cout << first / 2 + second / 2 << std::endl;
}

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 2
#include <iostream>

int main()
{
int first = 1502365230;
int second = 1262530350;
// The following code demonstrates a potential issue with integer overflow
// Although the final result will be within the range of an integer
// Adding two large numbers together can cause overflow before the division by 2 is performed
std::cout << (first + second) / 2 << std::endl;
}

Demandez à l'IA

expand
ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt