Dans ce didacticiel, nous allons découvrir les modificateurs de type et comment les utiliser dans la programmation C ++ à l'aide d'exemples.
Dans la programmation C ++, les modificateurs de type sont utilisés pour changer la signification des types de données fondamentaux.
Il existe quatre modificateurs de type en C ++.
short
long
signed
unsigned
Voici un bref résumé:
Type de données | Taille (en octets) | Sens |
---|---|---|
signed int | 4 | utilisé pour les entiers (équivalent à int ) |
unsigned int | 4 | ne peut stocker que des entiers non négatifs |
short | 2 | utilisé pour les petits nombres entiers (de -32768 à 32767 ) |
long | au moins 4 | utilisé pour les grands entiers (équivalent à long int ) |
unsigned long | 4 | utilisé pour les grands entiers positifs ou 0 (équivalent à unsigned long int ) |
long long | 8 | utilisé pour de très grands entiers (équivalent à long long int ). |
unsigned long long | 8 | utilisé pour de très grands entiers positifs ou 0 (équivalent à unsigned long long int ) |
long double | 8 | utilisé pour les grands nombres à virgule flottante |
signed char | 1 | utilisé pour les caractères (plage garantie -127 à 127 ) |
unsigned char | 1 | utilisé pour les caractères (de 0 à 255 ) |
Modificateur de type court
Nous pouvons utiliser short
pour les petits entiers (dans la plage −32,767
à +32,767
).
Par exemple,
// small integer short a = 12345;
Ici, a est une short
variable entière.
Remarque: short
équivaut à short int
.
Modificateur de type long
Si nous avons besoin de stocker un grand entier (compris entre -2147483647 et 2147483647), nous pouvons utiliser le spécificateur de type long
. Par exemple,
// large integer long b = 123456;
Remarque: long
équivaut à long int
.
Le modificateur de type long peut également être utilisé avec des double
variables.
// large floating-point number long double c = 0.333333333333333333L;
Remarque: pour indiquer long double
, nous utilisons le L
suffixe. Si nous n'utilisons pas le suffixe L
, c'est une double
valeur qui est convertie en long double
(ce qui peut entraîner une perte de données).
long long
long
peut être répété deux fois pour créer le long long
type. Ce type est utilisé pour des nombres encore plus grands que long
. long long
Le modificateur de type ne peut être utilisé qu'avec int
.
Par exemple,
// long long int long long num = 12345678;
Modificateurs signés et non signés
Les variables signées peuvent contenir des entiers positifs et négatifs, y compris zéro . Par exemple,
// positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;
Ici,
- x contient un entier de valeur positive
- y contient un entier de valeur négative
- z contient un entier de valeur zéro
Remarque:
- Par défaut, les entiers sont
signed
. Par conséquent, au lieu designed
int
, nous pouvons utiliser directementint
. signed
et unsigned ne peuvent être utilisés qu'avec les types int et char.
Les variables non signées ne peuvent contenir que des valeurs entières non négatives. Par exemple,
// positive valued integer unsigned int x = 2; unsigned int y = 0;
Ici,
- x contient un entier de valeur positive
- y est égal à zéro
En général, une int
variable peut stocker une plage de valeurs allant de -2 147 483 648 à 2 147 483 647 . Alors qu'une unsigned in
variable t peut stocker une plage de valeurs allant de 0 à 4 294 967 295 .
caractère signé, non signé et uni
C ++ dispose de 3 différents types char: char
, signed char
et unsigned char
. Dans la pratique, il n'y a fondamentalement que 2 types: signed char
et unsigned char
.
En effet, même si ce char
n'est pas le même que signed char
ou unsigned char
dans le C ++ standard, différents compilateurs traitent char
comme l'un signed char
ou l' autre ou unsigned char
selon leurs propres préférences.
Remarque: lorsque nous utilisons uniquement à la char
place de signed char
ou unsigned char
, ce type est appelé plain char .
Comme vous l'avez peut-être deviné, signed char
peut stocker des entiers positifs et négatifs, tandis que unsigned char
ne peut stocker que des entiers positifs (y compris 0 ).
La garantie plage de valeurs entières signed char
peuvent stocker est entre -127 et 127 tandis que la gamme de unsigned char
est de 0 à 255 .
// plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;
Ici,
- plain_1 contient un entier de valeur positive
- plain_2 contient un entier de valeur zéro
- sin_1 contient un entier de valeur positive
- sin_2 contient un entier de valeur zéro
- sin_3 contient un entier de valeur négative
- unsin_1 contient un entier de valeur négative
- unsin_2 contient un entier de valeur zéro
Remarque: Il est préférable de ne pas utiliser de caractères simples pour effectuer des manipulations numériques; un caractère signé ou un caractère non signé doit être utilisé à la place. Le caractère simple ne doit être utilisé que pour stocker les valeurs de caractères.