A quoi sert (un)signed short int en C++ ?

-RoRo- Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
-RoRo- Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je voulais savoir à quoi consiste d'utiliser unsigned short int ( entier court non signé) et signed short int (entier court signé) ?
Par exemple

Qu'elle est la différence entre ces programmes ci-dessous ?

#include <iostream>
int main()
{
unsigned short int Largeur;
Largeur = 5;
signed short int x;
x = -5;
std::cout << "Largeur : " << Largeur;
std::cout << "x :" << Longueur;
system ("pause");
return 0;
}

ET :::


#include <iostream>
int main()
{
int Largeur;
int x;
Largeur = 5;
x = -5;
std::cout << "Largeur : " << Largeur;
std::cout << "x :" << Longueur;
system ("pause");
return 0;
}

2 réponses

Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   329
 
Bonjour,
Ce ne sont que des recherches de performances optimales (enfin, bien souvent, parfois en utilisant le mauvais type on fait planter tout le programme).

Par exemple, un int est codé sur 32bits, donc il y a 4294967296 valeurs possibles.
Par défaut, quand tu déclares un int, c'est un signed int, c'est-à-dire que ton int peut aller de -2147483647 à +2147483648.
Si dans ton programme tu sais que tu n'utiliseras pas d'entiers négatifs, alors ça ne sert à rien de gaspiller 16bits. Tu déclares ton int en unsigned int, de cette manière ton entier peut aller de 0 à 4294967295.

Pour les shorts, c'est un peu la même façon de penser : un short est codé sur 16bits.
Donc par défaut, ton short peut aller de -32767 à +32768. Si tu sais que ton entier ne va pas dépasser ces valeurs, alors autant gagner quelques bits en évitant d'allouer de la mémoire qui ne sera pas utilisée.

Cordialement,
10
-RoRo- Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   1
 
Ben voilà, j'ai tout compris. Merci à toi !
0