Les types de données |
Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le nombre d'octets) de la donnée ainsi que sa représentation
En C++ il existe plusieurs types entiers, dépendant du nombre d'octets sur lesquels ils sont codés ainsi que de leur format, c'est-à-dire si ils sont signés (possédant le signe - ou +) ou non. Par défaut les données sont signées.
De plus, la langage C++ introduit par rapport au langage C un nouveau type de donnée appelée bool. Ce type de variable accepte deux états:
Voici un tableau donnant les types de données en langage C++:
Type de donnée | Signification | Taille (en octets) | Plage de valeurs acceptée |
char | Caractère | 1 | -128 à 127 |
unsigned char | Caractère non signé | 1 | 0 à 255 |
short int | Entier court | 2 | -32768 à 32767 |
unsigned short int | Entier court non signé | 2 | 0 à 65535 |
int | Entier | 2 | -32768 à 32767 |
unsigned int | Entier non signé | 2 | 0 à 65535 |
long int | Entier long | 4 | -2 147 483 648 à 2 147 483 647 |
unsigned long int | Entier long non signé | 2 | 0 à 4 294 967 295 |
float | flottant (réel) | 4 | 3.4*10-38 à 3.4*1038 |
double | flottant double | 8 | 1.7*10-308 à 1.7*10308 |
long double | flottant double long | 10 | 3.4*10-4932 à 3.4*104932 |
bool | booléen | 1 | 0 ou 1 (en réalité, toute autre valeur que 0 est considérée égale à 1) |
Nombre entier (int) |
Un nombre entier est un nombre sans virgule qui peut être exprimé dans différentes bases:
Les entiers sont signés par défaut, cela signifie qu'ils comportent un signe. Pour stocker l'information concernant le signe (en binaire), les ordinateurs utilisent le complément à deux
Nombre à virgule (float) |
Un nombre à virgule flottante est un nombre à virgule, il peut toutefois être représenté de différentes façons:
En réalité, les nombres réels sont des nombres à virgule flottante, c'est-à-dire un nombre dans lequel la position de la virgule n'est pas fixe, et est repérée par une partie de ses bits (appelée l'exposant), le reste des bits permettent de coder le nombre sans virgule (la mantisse).
Les nombres de type float sont codés sur 32 bits dont:
Les nombres de type double sont codés sur 64 bits dont:
Les nombres de type long double sont codés sur 80 bits dont:
La précision des nombres réels est approchée. Elle dépend par le nombre de positions décimales, suivant le type de réel elle sera au moins:
Caractère (char) |
Le type char (provenant de l'anglais character) permet de stocker la valeur ASCII d'un caractère, c'est-à-dire un nombre entier!
Par défaut les nombres sont signés, cela signifie qu'ils comportent un signe. Pour stocker l'information concernant le signe (en binaire), les ordinateurs utilisent le complément à deux. Une donnée de type char est donc signée, cela ne signifie bien sûr pas que la lettre possède un signe mais tout simplement que dans la mémoire la valeur codant le caractère peut-être négative...
Si jamais on désire par exemple stocker la lettre B (son code ASCII est 66), on pourra définir cette donnée soit par le nombre 66, soit en notant 'B' ou les apostrophes simples signifient code ascii de...
Il n'existe pas de type de données pour les chaînes de caractères (suite de caractère) en langage C. Pour créer une chaîne de caractère on utilisera donc des tableaux contenant dans chacune de ses cases un caractère...
Créer un type de donnée |
Il est possible en C++ comme en C de définir un nouveau type de données grâce au mot clé typedef. Celui-ci admet la syntaxe suivante:
typedef Caracteristiques_du_type Nom_du_typeoù
typedef char Ch
Conversion de type de données |
On appelle conversion de type de données le fait de modifier le type d'une donnée en une autre. Il peut arriver par exemple que l'on veuille travailler sur un type de variable, puis l'utiliser sous un autre type. Imaginons que l'on travaille par exemple sur une variable en virgule flottante (type float), il se peut que l'on veuille "supprimer les chiffres après la virgule", c'est-à-dire convertir un float en int. Cette opération peut être réalisée de deux manières:
int x; x = 8.324;x contiendra après affectation la valeur 8
int x; x = (int)8.324;x contiendra après affectation la valeur 8
De plus, le langage C++ rajoute une notation fonctionnelle pour faire une conversion explicite, la syntaxte de cette notation est:
int x; x = int(8.324;)