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
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 18149 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 219
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
0
et je px les mettre en meme temp unsigned short et short
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 817
12 juil. 2009 à 13:49
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 817 > abulkasem
12 juil. 2009 à 13:50
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 18149 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 219 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
12 juil. 2009 à 14:00
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 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 817 > Nabla's Messages postés 18149 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
12 juil. 2009 à 14:32
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