Modificateurs de type C ++: court, long, signé et non signé

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 shortpour les petits entiers (dans la plage −32,767à +32,767).

Par exemple,

 // small integer short a = 12345;

Ici, a est une shortvariable 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 doublevariables.

 // large floating-point number long double c = 0.333333333333333333L;

Remarque: pour indiquer long double, nous utilisons le Lsuffixe. Si nous n'utilisons pas le suffixe L, c'est une doublevaleur qui est convertie en long double(ce qui peut entraîner une perte de données).

long long

longpeut être répété deux fois pour créer le long longtype. Ce type est utilisé pour des nombres encore plus grands que long. long longLe 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 de signed int, nous pouvons utiliser directement int.
  • 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 intvariable peut stocker une plage de valeurs allant de -2 147 483 648 à 2 147 483 647 . Alors qu'une unsigned invariable 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 charet unsigned char. Dans la pratique, il n'y a fondamentalement que 2 types: signed charet unsigned char.

En effet, même si ce charn'est pas le même que signed charou unsigned chardans le C ++ standard, différents compilateurs traitent charcomme l'un signed charou l' autre ou unsigned charselon leurs propres préférences.

Remarque: lorsque nous utilisons uniquement à la charplace de signed charou unsigned char, ce type est appelé plain char .

Comme vous l'avez peut-être deviné, signed charpeut stocker des entiers positifs et négatifs, tandis que unsigned charne peut stocker que des entiers positifs (y compris 0 ).

La garantie plage de valeurs entières signed charpeuvent stocker est entre -127 et 127 tandis que la gamme de unsigned charest 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.

Articles intéressants...