Variale
Fermé
abulkasem
-
12 juil. 2009 à 13:25
Nabla's Messages postés 18149 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 14 juil. 2009 à 15:30
Nabla's Messages postés 18149 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 14 juil. 2009 à 15:30
1 réponse
Nabla's
Messages postés
18149
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 219
12 juil. 2009 à 13:33
12 juil. 2009 à 13:33
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
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
12 juil. 2009 à 13:43
12 juil. 2009 à 13:49
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 ^^.
12 juil. 2009 à 13:50
12 juil. 2009 à 14:00
12 juil. 2009 à 14:32
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.