Types de données et conversions

En programmation, les types de données sont utilisés pour définir le type de valeur qu'une variable peut contenir. En C, il existe plusieurs types de données différents, chacun ayant sa propre plage de valeurs et ses propres propriétés.

Types de données intégraux

Les types de données intégraux sont utilisés pour stocker des nombres entiers. Les types de données intégraux courants en C sont les suivants :

  • int : utilisé pour stocker des entiers signés, généralement sur 32 bits.
  • short : utilisé pour stocker des entiers signés plus petits, généralement sur 16 bits.
  • long : utilisé pour stocker des entiers signés plus grands, généralement sur 64 bits.
  • char : utilisé pour stocker des caractères, généralement sur 8 bits.

Voici un exemple de déclaration de variables utilisant des types de données intégraux :

int age = 20;
short nombre = 32767;
long grand_nombre = 123456789;
char lettre = 'A';

Dans cet exemple, la variable age est déclarée comme étant de type int, la variable nombre est de type short, la variable grand_nombre est de type long et la variable lettre est de type char.

Types de données flottants

Les types de données flottants sont utilisés pour stocker des nombres décimaux. Les types de données flottants courants en C sont les suivants :

float : utilisé pour stocker des nombres à virgule flottante simples, généralement sur 32 bits.

double : utilisé pour stocker des nombres à virgule flottante doubles, généralement sur 64 bits.

Voici un exemple de déclaration de variables utilisant des types de données flottants :

float prix = 12.99;
double taux = 0.085;

Dans cet exemple, la variable prix est déclarée comme étant de type float et la variable taux est de type double.

Types de données dérivés

Les types de données dérivés sont des types de données qui sont créés à partir des types de données intégraux et flottants. Les types de données dérivés courants en C sont les suivants :

  • unsigned : utilisé pour stocker des entiers non signés.
  • signed : utilisé pour stocker des entiers signés.
  • short int : utilisé pour stocker des entiers signés plus petits, généralement sur 16 bits.
  • long int : utilisé pour stocker des entiers signés plus grands, généralement sur 64 bits.
  • long double : utilisé pour stocker des nombres à virgule flottante doubles de précision étendue, généralement sur 80 bits.

Voici un exemple de déclaration de variables utilisant des types de données dérivés :

  • unsigned int nombre_positif = 42;
  • signed int nombre_negatif = -42;
  • short int petit_nombre = 32767;
  • long int grand_nombre = 123456789;
  • long double taux = 0.085;

Dans cet exemple, la variable nombre_positif est déclarée comme étant de type unsigned int, la variable nombre_negatif est de type

Il est important de choisir le bon type de données en fonction de la plage de valeurs que vous souhaitez stocker et de la précision requise pour vos calculs. Par exemple, si vous avez besoin de stocker un nombre entier compris entre -32768 et 32767, vous pouvez utiliser le type de données short int pour économiser de l'espace en mémoire.

De plus, les types de données dérivés comme unsigned et signed peuvent être utilisés pour préciser si un nombre est signé ou non signé. Cela peut être utile dans des cas où vous souhaitez manipuler des nombres uniquement positifs, comme les tailles de fichiers.

Enfin, il est important de noter que la taille des types de données peut varier en fonction du compilateur et de la plate-forme sur laquelle vous travaillez. Il est donc important de vérifier la taille de chaque type de données sur votre système avant de l'utiliser dans votre code.

Conclusion

En C, les types de données sont utilisés pour définir le type de valeur qu'une variable peut contenir. Les types de données intégraux, flottants et dérivés offrent une gamme de choix pour stocker différents types de données. Il est important de choisir le bon type de données en fonction de la plage de valeurs que vous souhaitez stocker et de la précision requise pour vos calculs. En outre, il est important de vérifier la taille de chaque type de données sur votre système avant de l'utiliser dans votre code.

Si vous avez trouvé ce Cours de Langage C de Mr JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 652027193 | Réaliser Par Joël_Yk

Liens de l’ancien parcours (référence)

<< PREC Suiv>>

Approfondir : Types de données et conversions

Un type détermine les valeurs possibles, les opérations et la représentation utilisée. Les tailles exactes ne doivent pas être déduites du seul nom du processeur.

Tailles garanties et tailles observées

Le standard garantit notamment que sizeof(char) vaut 1 ; cet octet C contient CHAR_BIT bits, pas nécessairement huit dans toutes les implémentations. Les autres tailles dépendent de l’environnement sous des contraintes minimales. Utiliser sizeof et les constantes de limits.h pour examiner une implémentation plutôt que coder une hypothèse dans un programme portable.

Conversions au bon moment

Une conversion écrite après une division entière n’en change pas le résultat déjà tronqué. Comparer (double)(7/2) et (double)7/2 : la première expression vaut 3.0, la seconde 3.5. Lire l’expression de l’intérieur vers l’extérieur permet de voir quand le type change.

Entiers et flottants

Un entier signé doit rester dans son intervalle représentable. Un flottant représente une approximation finie de nombreux réels ; afficher davantage de décimales ne crée pas une précision absente de la valeur stockée. Les formats printf et scanf doivent être choisis en fonction des types effectifs, et non de l’apparence du nombre.

Types : convertir avant la division

#include <stdio.h>
int main(void) {
    int a = 7, b = 2;
    printf("Apres division = %.1f\n", (double)(a / b));
    printf("Avant division = %.1f\n", (double)a / b);
    printf("sizeof(char) = %zu\n", sizeof(char));
    return 0;
}
Suivre le programme : Types, convertir avant la division
Instruction ou étapeExplication
(double)(a/b)7/2 vaut d’abord 3, puis devient 3.0.
(double)a/bLe double 7.0 conduit à une division réelle.
sizeof(char)La taille de l’unité char vaut 1 en unités sizeof.

Sortie écran : essai 1

L’ordre de conversion change le calcul.

Apres division = 3.0
Avant division = 3.5
sizeof(char) = 1

S’entraîner et vérifier

Exercice 1. Une machine à pointeurs 64 bits impose-t-elle int sur 64 bits ?

Voir la correctionMasquer la correction

Non. La taille des pointeurs ne fixe pas celle de int. Il faut consulter l’implémentation et utiliser sizeof pour observer les tailles.

Pratiquer avec le TD/TP 1 corrigé · Tous les exercices C.

Repère de lecture : les codes proposés utilisent des constructions disponibles en C11. Les règles du langage et de sa bibliothèque sont consultables dans les projets publics du WG14 (C11) et du WG14 (C23). Les exemples n’utilisent pas les nouveautés propres à C23.

Questions / Réponses

Aucune question. Soyez le premier à poser une question.
★ ★ ★ ★ ★
Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam