Elément de contenu :
· Les types entiers
· Les types flottants
· Les types caractères
Les différents types de base du langage C se répartissent on trois grandes classes en fonction de
a nature de l’inFormation qu’ils permettent de représenter
• caractères (mot clé char)
• nombres entiers (mot clé int)
• nombres flottants (mot clé float)
1- LES TYPES ENTIERS
Ils permettent de représenter une partie des nombres entiers relatifs. Quatre types entiers
différents peuvent être obtenus et, introduisant dans a déclaration des “attributs” agissant:
• sur la taille de l’emplacement mémoire utilisé pour représenter les valeurs, à savoir :long ou short. On peut donc
rencontrer les types : int ,short int ou long int (en fait, long int peut s’abréger en long et short int en short)
• sur le mode de représentation binaire, à savoir signed (avec signe) ou unsigned(sans signe).
I.1 Représentation mémoire des types entiers
Le langage C dispose de 4 types entiers différents caractérisés par:
• leur taille : 16 bits (pour le short int) au 32 bits (pour le long int)
• la présence ou l’absence du signe : signed ou unsigned.
- Dans e premier cas (signed), le bit de poids fort est utilisé pour représenter le signe et
la valeur absolue de nombre est codé sur les bits restants (15 ou 31) ; lorsque le nombre
est négatif, sa valeur absolue est codée suivant la méthode du “complément à 2”.
- Dans le second cas (unsigned), on ne représente que des nombres positifs (ou nuls), en
utilisant tous les bits disponibles.
I.2 Limitations relatives aux types entiers
Ces limitations portent essentiellement sur les valeurs qu’ils est ainsi possible de. représenter. Elles découlent directement de leur taille et dc l’attribut de signe.
TYPE |
TAILLE(octets) |
DOMAINE |
unsigned int |
2 |
0à65 535 |
int |
2 |
-32 768 à 32 767 |
Unsigned long |
4 |
0à4 4 294 967 295 |
long |
4 |
-2 147 483 648 à 2 147 483 647 |
I.3 Ecritures des constantes entières
Le langage C autorisé :
· Décimale,
· Octale,
· hexadécimale
La forme décimale correspond à notre notation usuelle d’un nombre entier avec ou sans signe.
En voici quelques exemples :
+526 10 -2540
La forme octale se note on faisant précéder le nombre écrit on base 8 du chiffre 0.
La forme hexadécimale de note en faisant précéder le nombre écrit en hexadécimale des deux caractères Ox(ou OX) .
Voici quelques exemples de notation équivalentes :
19 023 Ox 13
— 1 0177777 Ox FFFF
Ils permettent de représente de manière approché une partie des nombres réels
Dans le langage C on retrouve les deux types flottants float et double float (qui est abrégés en double).
Les deux types flottants sont caractérisés par leur taille :
• le type float qui utilise 32 bits,
• le type double qui utilise 64 bits.
Dans les deux cas la zone utilisé pour le codage se décomposé en trois parties :
• un bit réservé en signe de nombre
• un emplacement pour un exposant ,a savoir :
8 bits pour le type float
11 bits pour le type double
23 bits pour le type float52 bits pour le type double
Elle portent à la fois :
• sur le ’’domaine ’’des réels qu’il est ainsi possible de représenter
• snt représenté
TAILLE(octets) |
DOMAINE |
PRECISION (chiffres significatifs) |
|
float |
4 |
6 |
|
double |
8 |
1.7E-308 à 1.7 E+308 |
15 |
Il est à ,noter que le domaine mentionné dans ce tableau correspond aux valeurs positives et qu’il doit être
complété de façon symétrique pour valeurs négatives. Les précisions mentionnées sont approximatives.
11.3 Ecriture des constantes flottantes
Comme dans la PLUS part des langages, les constantes réelles peuvent s’écrire indifféremment
suivant l‘une des deux notations
• décimales,
• exponentieLle.
La notation décimale doit comporter obligatoirement un point (correspondant à noire virgule) -
La partie entière ou la partie décimal peuvent être omises (mais pas les deux à la fois) En
Voici quelques exemples corrects
12.43 -0.38 -.38 4. .27
Par contre la constante 47 serait considérée comme entière et non comme flottante.
La notation exponentielle utilise la lettre e (ou E ) pour introduire un exposant entier (puissant de 10), avec ou sans signe.
La mantisse peut être n’importe quel nombre décimal ou entier (le point peut être absent dès qu’ on utilise un exposant). Voici quelques exemples corrects (les exemples d’une même ligne sont équivalents) :
4.25E4 4.25e+4 42.5E3
5.27E-32 52.7e-33 527E-34
48a13 48.e13 48.0E13
III.1 Représentation mémoire des types caractères
Le langage C dispose de deux types caractères correspondant à l’un des attributs signed ou unsigned .
Par défaut signed est équivalent à signed char .
Les variables de type char occupent en mémoire un octet (8 bits)qui peut donc recevoir les 256 codes du code ASCII étendu. Le qualificatif signed ou unsigned n’agit pas sur la représentation interne d’un caractère quelconque même si son code est supérieur à 127 ; par contre, ce qualificatif pourra avoir une incidence dans d’éventuelles conversions ultérieures auxquelles la variable, correspondante pourra être soumise.
111.2 Ecriture des constantes caractères
Les constantes caractères correspondant à des caractères imprimables se notent de façon classique, en écrivant entre apostrophes (ou quotes) caractère voulu, comme dans ces exemples :
‘a’ ‘y’ ‘+’ ‘s’
Certain caractères non imprimables possèdent une représentation conventionnelle utilisant le caractère “\“ nommé antislash. Dans cette catégorie on trouve également quelques caractères.
Qui bien disposant d’un certain graphisme, jouent un rôle particulier de délimiteur qui leur empêche d’être noté de manière classique entre deux apostrophes.
De plus, il est possible d’utiliser directement le code ASCII du caractère en exprimant
toujours à la suite du caractère antislash
• soit sous forme octale
• soit sous forme hexadécimale précédée de x
voici quelques exemples de notation équivalentes :
‘A’ ‘x41’ ‘101’
‘/n’ ‘/xod’ ‘/15’ ‘/015’
Révisé le :23-Sep-2007| ©2007 www.technologuepro.com