1 réponse
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
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 ^^.
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.