Programmer en langage C
18
© Éditions Eyrolles
L’ordinateur, compte tenu de sa technologie actuelle, ne sait représenter et traiter que des
informations exprimées sous forme binaire. Toute information, quelle que soit sa nature, devra
être codée sous cette forme. Dans ces conditions, on voit qu’il ne suffit pas de connaître le contenu
d’un emplacement de la mémoire (d’un ou de plusieurs octets) pour être en mesure de lui attribuer
une signification. Par exemple, si vous savez qu’un octet contient le « motif binaire » suivant :
01001101
vous pouvez considérer que cela représente le nombre entier 77 (puisque le motif ci-dessus
correspond à la représentation en base 2 de ce nombre). Mais pourquoi cela représenterait-il
un nombre ? En effet, toutes les informations (nombres entiers, nombres réels, nombres complexes, caractères, instructions de programme en langage machine, graphiques...) devront, au
bout du compte, être codées en binaire.
Dans ces conditions, les huit bits ci-dessus peuvent peut-être représenter un caractère ; dans ce
cas, si nous connaissons la convention employée sur la machine concernée pour représenter les
caractères, nous pouvons lui faire correspondre un caractère donné (par exemple M, dans le
cas du code ASCII). Ils peuvent également représenter une partie d’une instruction machine
ou d’un nombre entier codé sur deux octets, ou d’un nombre réel codé sur 4 octets, ou...
On comprend donc qu’il n’est pas possible d’attribuer une signification à une information
binaire tant que l’on ne connaît pas la manière dont elle a été codée. Qui plus est, en général,
il ne sera même pas possible de « traiter » cette information. Par exemple, pour additionner
deux informations, il faudra savoir quel codage a été employé afin de pouvoir mettre en œuvre
les bonnes instructions (en langage machine). Par exemple, on ne fait pas appel aux mêmes
circuits électroniques pour additionner deux nombres codés sous forme « entière » et deux
nombres codés sous forme « flottante ».
D’une manière générale, la notion de type, telle qu’elle existe dans les langages évolués, sert à
régler (entre autres choses) les problèmes que nous venons d’évoquer.
Les types de base du langage C se répartissent en trois grandes catégories en fonction de la
nature des informations qu’ils permettent de représenter :
●
nombres entiers (mot-clé int),
●
nombres flottants (mot-clé float ou double),
●
caractères (mot-clé char) ; nous verrons qu’en fait char apparaît (en C) comme un cas
particulier de int.
2 Les types entiers
2.1 Leur représentation en mémoire
Le mot-clé int correspond à la représentation de nombres entiers relatifs. Pour ce faire : un
bit est réservé pour représenter le signe du nombre (en général 0 correspond à un nombre
Delannoy Livre.book Page 18 Mercredi, 6. mai 2009 4:26 16
Précédent

- 31/281

Suivant