III)Éléments de base pour débuter 1)Les types de base Les types de base correspondent aux types directement supportés par la machine. Dans le langage C, tout type de base est un nombre codé sur un ou plusieurs octets. Donc tout type de base accepte toute opération mathématique de base !!!
a)Les entiers int : entier codé sur 2 ou 4 octets suivant la machine sur laquelle on travaille. Dans le monde Unix, il est généralement de 4 octets. Sa plage de valeur peut donc aller de :
-231 à 231 – 1 ; c'est à dire de –2 147 483 648 à 2 147 483 647 s'il est déclaré signé
0 à 232 – 1 ; c'est à dire de 0 à 4 294 967 296 s'il est déclaré non-signé
short int : entier court codé sur 2 octets. Le mot "short" est suffisant par luimême donc le mot "int" n'est pas obligatoire. Sa plage de valeur peut aller de :
-215 à 215 – 1 ; c'est à dire de –32 768 à 32 767 s'il est déclaré signé
0 à 216 – 1 ; c'est à dire de 0 à 65 535 s'il est déclaré non-signé
long int : entier long codé sur 4 octets. Le mot "long" est suffisant par luimême donc le mot "int" n'est pas obligatoire. Sa plage de valeur peut aller de :
-231 à 231 – 1 ; c'est à dire de –2 147 483 648 à 2 147 483 647 s'il est déclaré signé
0 à 232 – 1 ; c'est à dire de 0 à 4 294 967 296 s'il est déclaré non-signé
long long int : entier long codé sur 8 octets. Les mots "long long" sont suffisants par euxmêmes donc le mot "int" n'est pas obligatoire. Sa plage de valeur peut aller de :
-263 à 263 – 1 ; c'est à dire de – 9 223 372 036 854 775 808 à 9 223 372 036 854 775 807 s'il est déclaré signé
0 à 264 – 1 ; c'est à dire de 0 à 18 446 744 073 709 551 615 s'il est déclaré non-signé
char : caractère ASCII qui est un nombre entier codé sur 1 octet. Lui aussi de par sa nature numérique accepte des opérations mathématiques. Sa plage de valeur peut aller de :
-27 à 27 – 1 ; c'est à dire de –128 à 127 s'il est déclaré signé
0 à 28 – 1 ; c'est à dire de 0 à 255 s'il est déclaré non-signé Remarques :
Ajouter 1 à une variable ayant atteint sa limite maximale la fait basculer en limite minimale (perte de la retenue). C'est à dire que "127 + 1 = -128" si on travaille sur une variable de type "char signé"
Il est possible de forcer un entier à être signé ou non-signé en rajoutant le mot clef "signed" ou "unsigned" avant son type (char, int, short int, long int). Dans le monde Unix, une variable est signée par défaut donc le mot clef "signed" est inutile.
b)Les réels Ils respectent les règles de codage IBM des réels utilisant un bit pour le signe, "x" bits pour la mantisse et "y" pour l'exposant. Ils sont de deux types standard et un troisième nonstandard :
float : réel en virgule flottante codé sur 4 octets. Sa plage de valeur est de [+/-]701 411 x 10-38 à [+/-]701 411 x 1038
double : réel en virgule flottante codé sur 8 octets. Sa plage de valeur est de [+/-]1.0 x 10-307 à [+/-]1.0 x 10307
long double :Réel en virgule flottante codé sur 12 octets. Sa plage de valeur est de [+/-]3.4 x 10-4932 à [+/-]1.1 x 104932. Mais ne faisant pas partie de la norme ANSI, il est souvent transformé en "double" par les compilateurs normalisés.
c)Les booléens Il n'existe pas en langage C de type booléen. Mais la valeur zéro est considérée par le langage Comme "faux" et toute autre valeur différente de zéro est considérée comme "vrai".
|