programmation en C: LES TYPES DE BASE

bjectifs

  • Connaître les différents types de base de langage C et leurs caractéristiques
  • Connaître les représentations mémoire et les limitations relatives à chaque type de données

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)



- 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

II- LES TYPES FLOTTANTS

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).

II.1 Représentation mémoire des types flottants

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 float

52 bits pour le type double

II.2 Limitations relatives aux types flottants

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- LES TYPES CARACTERES

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’



Commentaires