Variale

abulkasem -  
Nabla's Messages postés 20731 Statut Contributeur -
Bonjour,j ai un livre sur le c++ et je comprend vraiment rien varibles suivent:
char
unsigned char
short int
unsigned short int
int
unsigned int
long int
unsigned long int
float Flottant
double
long double
bool

1 réponse

Nabla's Messages postés 20731 Statut Contributeur 3 194
 
le type des variables dépend de leur utilisations.
par exemple, tu remarques qu'il y a le type unsigned short int, et short int (d'ailleur, on dit seulement short). L'un permet de mettre des variables signées (des nombres négatifs), alors que l'autre (unsigned) no tolère que des variables positive...

une autre différence entre les types de variables est leur taille... un char fait 1 octet de long: il peut prendre 255 valeurs(2^8bits). On s'en sert généralement poour y stoquer des caractères
le short est sur 2 octets (16 bits) et a donc 2^16 valeurs possibles (65536 valeurs). il peut te permetre de compter de environ -32 000 à +32000 par exemple... s tu as besoin de compter uniquement avec des nombres positifs, il pourra te permettre d'aller de 0 à 65535 !!

le type int est encore plus grand (4 octets), et te permet d'atteindre des nombres très éloigné....

ce que je t'ai dit est valable pour des nombres entiers....
si tu as besoin d'utiliser des nombres décimaux (à virgule), tu utiliseras les types float par exemple.

le type bool est en fait un char dans la pratique. MAis il faut le voir comme une valeur binaire: sa valeur est VRAIE (true) ou FAUSSE (false)... tu verra, on l'utilise beaucoup
0
abulkasem
 
et je px les mettre en meme temp unsigned short et short
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
Attention, short, int (et long) n'ont pas un nombre d'octets imposés par la norme mais juste une relation d'ordre. Donc un int ce n'est pas forcément 4 octets, de même pour le short.

De plus, le char, c'est un byte (et non un octet) d'au moins 8 bits.

Voilou pour la précision ^^.
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > abulkasem
 
A une variable tu associes un seul type. Si tu souhaites la mettre en short, soit tu la mets en unsigned short soit en short.
0
Nabla's Messages postés 20731 Statut Contributeur 3 194 > fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention  
 
les valeurs que j'ai donné sont pour un systeme 32 bits ;) evidement, si on est en 16 bits, on aura le short et le int qui auront tout 2 une taille de 16 bits...
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > Nabla's Messages postés 20731 Statut Contributeur
 
Non plus ;-))
La norme spécifie juste une relation d'ordre entre les trois types (short, int, et long) et impose une taille minimale et maximale. Après cela dépend de l'interprétation de la norme par le compilateur. Tandis qu'il y en a qui choisit d'adopter ta logique (int basé sur le format natif du processeur), il y en a qui ont choisi de fixer la taille du int à 4 octets quelque soit le processeur. Pour les machines 16 bits ça posera problème, mais comme les compilateurs actuels ne fonctionnent pas dessus ...

Bref, on ne peut pas vraiment se fier à la taille du int, short et long, juste à leur relation d'ordre.
0