valeur les calculs suivants sont souvent faussés. 
Vu le nombre de manipulations pour arriver à gérer les nombres réels, leur manipulation par le microprocesseur est 
plus  lente  qu’avec  des  nombres  entiers.  Heureusement,  à  côté,  puis  dans  les  microprocesseurs  sont  apparus  des 
composants  supplémentaires  appelés  FPU,  Flotting  Point  Unit,  dont  le  but  est  de  pouvoir  manipuler  directement  les 
nombres et les fonctions mathématiques associées, accélérant fortement le traitement des données. Peut­être avezvous  entendu  parler  des  processeurs  Intel  386  qui  équipaient  les  PC  vers  1990.  Un  coprocesseur  mathématique 
appelé 80387 pouvait souvent être ajouté pour accélérer les opérations. Même les ordinateurs personnels de type 
Atari ST pouvaient se voir ajouter un coprocesseur de ce type (68881). Aujourd’hui ces coprocesseurs n’en sont plus : 
ils sont directement intégrés dans le microprocesseur. Le dernier Pentium ou Athlon de votre PC en contient. 
3. Les dates 
Les dates sont représentées de deux manières dans l’ordinateur. La première est le format BCD vu précédemment, et 
ceci presque exclusivement dans le bios (setup) de votre ordinateur, pour des raisons historiques. Le second est le 
timestamp Unix, qui représente le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit pile UTC. Cette 
date  a  été  retenue  car  bien  que  l’idée d’Unix  soit  apparue  en  1969,  l’ère d’Unix  (arrivée  de  la  première  version  et 
expansion) débute dans les années 1970. 
Le 11 avril 2007 à 21 heures, 24 minutes et 43 secondes, le timestamp Unix est de 1176319483 secondes. 
Le timestamp est généralement codé sur un entier de 32 bits signé. S’il est négatif, il représente une date d’avant 
1970, s’il est positif une date suivante. Il couvre une plage de 136 ans, du 13 décembre 1901 20 heures 45 minutes 52 
secondes jusqu’au 19 janvier 2038, 3 heures 14 minutes 8 secondes. Passée cette date, que se passera­t­il ? Tous les 
systèmes d’exploitation ou les ordinateurs n’ayant pas prévu ce problème rencontreront un magistral bug digne de 
celui de l’an 2000, ou pire : le bug de l’an 2000 (qui n’a pas eu lieu, ou peu, malgré les prédictions catastrophiques) 
était essentiellement logiciel, le timestamp est défini au sein du système d’exploitation. 
Alors que faire ? Déjà, il reste une trentaine d’années pour modifier la chose, et c’est bien souvent déjà fait. Unix a été 
conçu il y a bientôt 40 ans et est toujours extrêmement utilisé. Il est fort probable que d’ici 30 ans, lui ou l’un de ses 
dérivés  le  soit  encore.  C’est  un  système  d’exploitation  qui  a  fait  ses  preuves.  Or  les  technologies  évoluent  et  les 
ordinateurs  actuels  manipulent  sans  difficulté  des  nombres  de  64  bits.  Un  timestamp  signé  sur  64  bits  permet  de 
représenter des dates de l’époque où l’univers tel que nous le connaissons n’existait pas, et dans le futur, une période 
où notre Soleil n’existera plus depuis bien longtemps... Il suffit donc de passer le timestamp sur 64 bits, et sachant qu’il 
existe un type timestamp en programmation, de recompiler tous les programmes. Il n’y a donc aucun souci à se faire. 
4. Les caractères 
Les caractères sont habituellement codés sur 8 bits, soit un octet, en utilisant la table ASCII. Dans cette table, les 128 
premières  valeurs  ne  représentent  pas  que  les  caractères  pour  les  anglais  mais  aussi  divers  codes  non  affichables 
utilisés pour contrôler l’affichage  d’un terminal. Les caractères de 0 à 31 vont contenir des choses comme les retour 
chariot, le passage à la ligne, la tabulation, etc. Le caractère 32 est l’espace, le 127 le caractère de suppression. Le "A" 
en majuscule démarre à 65, en minuscule à 97, les chiffres en partant de 0 à 48. Le reste est la ponctuation, divers 
signes comme les symboles monétaires, les opérateurs et comparateurs arithmétiques, et ainsi de suite. Typiquement, 
la chaîne "Hello World!" est représentée ainsi. 
Les caractères d’une même chaîne occupent tous des cases mémoires contiguës. L’ordinateur ou plutôt les langages 
utilisant les chaînes de caractères doivent savoir où celle­ci  commence  (c’est indiqué en interne par la variable ellemême)  et  où  elle  finit.  C’est  le  caractère  spécial  de  code  0,  représentant  un  caractère  vide,  qui  indique  une  fin  de 
chaîne.  Quand  l’ordinateur  doit  récupérer  une  chaîne,  il  lit  tous  les  caractères  contigus  jusqu’à  ce  qu’il  trouve  le 
caractère vide de code 0. 
Les  128  caractères  suivants  représentent  l’ASCII  étendu,  permettant  de  coder  les  caractères  semi­graphiques  qui 
étaient  couramment  utilisés  sur  les  terminaux  :  traits  horizontaux,  verticaux,  angles,  etc,  mais  aussi  les  caractères 
propres à chaque pays. Ces 128 caractères sont placés au sein de pages de codes, dont la plupart sont normalisées. 
Quand on change de pays, on change de page de code. Ce système présente cependant deux inconvénients : 
q Les fichiers textes et les noms de fichiers écrits dans d’autres langues que l’anglais ne seront pas interprétés 
correctement sur les systèmes n’utilisant pas la même page de code. Typiquement, si vous utilisez une page de 
code norvégienne sur des fichiers en français, vous obtiendrez des caractères surprenants. 
q Les 128 octets ne suffisent pas toujours à coder tous les caractères d’une langue particulière, par exemple 
tous les idéogrammes chinois ou japonais. Dans ce cas, l’alphabet de ces langues est restreint, ou les gens 
natifs  de  ces  pays  (et  d’autres)  doivent  utiliser  plusieurs  pages  de  code,  ou  passer  par  des  logiciels  et 
Code ASCII 
72 
101 
108 
108 
111 
32 
87 
111 
114 
108 
100 
33 
Caractère 
H 
e 
l 
l 
o 
W 
o 
r 
l 
d 
! 
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
44
Précédent

- 44/220

Suivant