Vous êtes sur la page 1sur 16

UEO11 COURS/TD 1

Contenu du semestre
Cours et TDs sont intgrs Lobjectif de ce cours quivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : initiation lalgorithmique notions de bases de programmation variables simples, entres sorties basiques choix et itrations tableaux 1D

Il faut tenir compte du fait que cet enseignement concerne aussi bien des tudiants qui se destinent a faire de la biologie qua des tudiants qui sorienteront vers les mathmatiques ou linformatique. Il ny a pas de note de TP mais la prsence en TP est obligatoire (appel) et vital pour comprendre lenseignement et russir aux contrles !

1 Gnralits
1-1 Linformatique
Science du traitement de linformation automatiquement Ensemble de techniques de collecte, de tri , de mise en mmoire, de transmission et de lutilisation des informations traites automatiquement laide de programmes mis en uvre sur ordinateur. Exemple dinformations : nombres entiers et rels cods en mmoire centrale. Caractres alphabtiques et caractres spciaux. Le traitement de linformation consiste partir dune information de dpart de produire par traitement une nouvelle information de sortie.

1-2 Lordinateur
Un ordinateur est une machine qui permet d'effectuer des traitements sur des donnes l'aide de programmes. Les donnes (les paramtres du problme, par exemple les notes des tudiants du cours d'informatique) ainsi que le programme (par exemple le calcul de la moyenne des notes) sont fournis la machine par l'utilisateur au moyen de dispositifs de saisie (le clavier par exemple). Le rsultat du traitement est recueilli la sortie de l'ordinateur (l'cran, limprimante) sous forme de texte par exemple.

Nous allons tudier maintenant comment est code linformation dans la mmoire centrale et dans la mmoire auxiliaire.

2 - Le codage binaire de linformation


Toute l'information qui transite dans un ordinateur est code avec des bits ( Binary digIT) ne prenant que les valeurs 0 et 1. Linformation est donc toujours discrte Par exemple pour coder le nombre 13 en binaire, il faut les quatre chiffres binaires 1101. En effet 13 peut tre dcompos comme une somme de puissances de 2 13 = 8 + 4 + 1 =1*8+1*4+0*2+1*1 en dcimal = 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 on ne conserve que les coefficients = 1 1 0 1 en binaire Question avec n bits combien de codes diffrents obtient on ? 2n

2.1 Reprsentation des informations en binaire


Pour coder de l'information , que ce soient des nombres, (PI=3,141592...), du texte (ce cours), des schmas, des images, des sons, des relations ("Pierre est le pre de Jacques et le frre de Marie"), les circuits lectroniques d'un ordinateur ne peuvent utiliser que des informations en binaire. Montrons d'abord comment il est possible de coder n'importe quel nombre entier naturel IN={0, 1, 2, 3, ... ,1 000, ..., 1 000 000, ...} en binaire. Puis nous en ferons autant pour les entiers signs les dcimaux et les caractres. Enfin il faudra montrer que les images, les sons peuvent aussi se coder en binaire.

2.1.1 Passer du dcimal au binaire Il suffit de dcomposer un nombre dcimal en une somme de puissances de 2. On peut par exemple commencer par crire la table des premires puissances de 2 : 20 = 1 24 = 16 28 = 256 21 = 2 25 = 32 29 = 512 22 = 2x2 = 4 26 = 64 210 = 1024 = 1K 23 = 2x2x2 = 8 27 =128 211 =2048 .

Ex calculer la valeur binaire de 37 en base 10 : 37 1 2 18 0

2 9 1

2 4 0

2 2 2 0 1

37 == 2 x ( ( 2 x 9 ) + 0 ) + 1 == 2 x ( ( 2 x ( 2 x 4 + 1 ) ) + 1 == 1 x 25 + 1 x 22 + 1 x 20 == 1 x 25 + 0 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 1 x 20 soit en base 2 : 1 0 0 1 0 1

Exercice : Montrer que le nombre 131 est une somme de puissances de 2 Reponse : 10000011 Exercice : Donner la reprsentation binaire des 10 premiers nombres entiers : 0 = 0x20 -> 0; 1=1x20 -> 1 ; 2=1x21 -> 10 3 = 1x2 + 1x1 = 1x21 + 1x20 -> 11 4 = 1x4+ 0x2 + 0x1 = 1x22 + 0x21 + 0x20-> 100 5 = 1x4 + 0x2 + 1x1 = 6= 7= 8= 9= 10 =

2.1.2 Passer du binaire au decimal Le codage binaire a un inconvnient majeur pour l'tre humain, son manque de lisibilit... Quelle est la reprsentation dcimale du nombre dont la reprsentation binaire est : 1001 1110 ?

Rponse : 1x27+ 0x26 + 0x25 +1x24 + 1x23 + 1x22 + 1x21 + 0x20 = 1x128 + 0x64 + 0x32 +1x16 + 1x8 + 1x4 + 1x2 + 0x1 = 158

Exercice : Combien de chiffres binaires faut-il pour reprsenter le nombre dcimal 10000 ? Reponse : 14 211=2048 212=4096 213=8192 214=16384

2.2 Oprations usuelles en binaire


Les deux oprations binaires de base sont l'addition la multiplication Table d'addition binaire 0+0=0 0+1=1 1+0=1 1 + 1 = 0 avec une retenue de 1 Table de multiplication binaire 0x0=0 0x1=0 1x0=0 1x1=1

Exercice : En utilisant la table d'addition binaire calculez en binaire les nombres suivants : 1001 + 10100 1111 + 1 1111 1111 + 1111 1111

2.3 Oprations logiques


En logique binaire une variable logique (boolenne) est VRAI (TRUE = 1) ou FAUSSE (FALSE = 0). Une expression logique est constitue de plusieurs variables logiques combines par des connecteurs (oprateurs) logiques : Les oprateurs logiques lmentaires sont : - NON [NOT] - ET [AND] - OU [OR]

Table de vrit du OU 0 OU 0 = 0 0 OU 1 = 1 1 OU 0 = 1 1 OU 1 = 1

Table de vrit du ET 0 ET 0 = 0 0 ET 1 = 0 1 ET 0 = 0 1 ET 1 = 1

Table de vrit du NON NON 0 = 1 NON 1 = 0

Exercice : Donner la valeur de vrit {VRAI ou FAUX} des assertions suivantes : 102 est un nombre pair ET 102 est divisible par 3 11 est multiple de 3 ET 102 est divisible par 3 108 est multiple de 9 OU 11 est divisible par 3

2.4 Codage des nombres entiers et des nombres rels dcimaux


L'ensemble des entiers naturels : IN = {0,1,2,3 ,4 ,.. } - IN est ordonn ; il a un plus petit lment 0 ; - Il n'y a pas de plus grand lment : tout lment a un successeur L'ensemble des entiers relatifs : Z = Z+ U ZZ= {...,-3,-2,-1, 0, 1,2,...}

- Z est ordonn - il n'y a ni plus grand ni plus petit lment : tout lment de Z a un prdcesseur et un successeur.

2.4.1 Oprations sur les entiers Oprateurs unaires :


Oprateurs binaires : + * DIV MOD /

Oprateurs de comparaison :

- (moins) : oppos

= < <= > >=

2.4.2 Implmentation des entiers non signs

En raison des limitations d'espace mmoire, on ne peut reprsenter que quelques nombres. Par exemple si on dispose dun mot mmoire de 16 bits ( soit deux octets) pour reprsenter des nombres par exemple alors les diffrents contenus possibles de la mmoire sont les suivants : Contenu mot 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0010 0000 0000 0000 0011 0000 0000 0000 0100 0000 0000 0000 0101 .. .. .. valeur en dcimal 0 1 2 3 4 5

1111 1111 1111 1100 1111 1111 1111 1101 1111 1111 1111 1110 1111 1111 1111 1111

65 532 65 533 65 534 65 535

en fait il y a 216 = 65 536 codes diffrents et si on veut utiliser un mot mmoire pour coder des informations on sait quavec un mot mmoire on ne peut coder que 65536 choses diffrentes. Supposons maintenant quon se pose le problme de coder tous les entiers positifs ou nuls sur ordinateur. Le nombre dlments de cet ensemble est infini.pour coder tous les entiers il faudrait donc un nombre infini de bits et donc une mmoire centrale infinie.ce qui est impensable ! Donc on ne pourra jamais coder tous les entiers positifs. Si on prend un mot on ne peut coder que 65536 choses diffrentes et donc 65 536 entiers sur linfinit dentiers possibles . Si on prend les entiers positifs on a choisi bien sur que 0 cest le mot mmoire 0000 0000 0000 0000 .65 335 cest le mot mmoire 1111 1111 1111 1111

Exemple pour n = 54710 On dcompose 547 en puissances successives de 2 : 54710= 512 + 32 + 2 + 1 = 1*29 +1*25 +1*21 +1*20 et on ne code que les coefficients de la dcomposition, la reprsentation binaire de n est Bin(n) = 0000 0010 0010 0011

Le plus grand nombre entier non sign reprsentable est donc : 1111 1111 1111 1111 = 1*215 +1*214 +1*213 +1*211 +1*210 +1*29 +1*28

+ 1*27 +1*26 +1*25 +1*24 +1*23 +1*22 +1*21 +1*20 = 1*216 - 1 La reprsentation dcimale de ce nombre est donc Dec(n) = 65 536 - 1 = 65 53510 les entiers positifs strictement suprieurs 65 535 ne sont donc pas reprsentables.. Maintenant si on prend deux entiers codables par exemple 65 533 et 5 Si on veut faire la simple somme et coder le rsultat dans un mot on aura un rsultat faux

Preuve : 65 533 5 soit soit en binaire en binaire somme 1111 1111 1111 1101 0000 0000 0000 0101 --------------------------1 0000 0000 0000 0010

Il reste donc dans le mot mmoire contenant le rsultat 0000 0000 0000 0010 soit le codage du nombre 2 ce qui nest pas le bon rsultat.. Il y a eu ce quon appelle un dpassement de capacit et le rsultat plac dans un mot est faux ! Donc dj on voit que quand on fait des calculs sur les entiers il faut prvoir les cas ou il y aura dpassement de capacit. Les difficults rsoudre pour les entiers quelconques sont donc les suivantes : quels entiers sont reprsents et comment reprsenter les ngatifs et par consquent le signe.

Exercice TD : Indiquer quels sont les entiers non signs reprsentables sur un double mot, soit 4 octets Rep : ils vont de 0 232-1 soit de 0 4 294 967 295

2.4.3 Implmentation des entiers signs Nous allons tudier la reprsentation des entiers signs sur deux octets Le problme ici est que dune part il faut reprsenter la valeur absolue et dautre part le signe. Quand on dispose dun mot mmoire et quon fait lhypothse quil code un entier sign il faut pouvoir reconnatre le signe (+ /-), et donc il est obligatoire quun bit sur les 16 bits disponibles sera utilis pour coder le signe. Cest le bit de gauche (dit de fort poids) qui est utilis : Sil vaut 1 alors le nombre cod est ngatif Sil vaut 0 alors le nombre cod est positif

Une reprsentation utilise sur les premires machines consistait coder dune part le signe sur un bit , dautre part la valeur absolue sur les 15 bits restants : On code donc le signe 0/1 puis sur 15 bits la valeur absolue qui va donc de 0 215-1 (=32 767) On peut donc coder ainsi de 32 767 + 32 767

Inconvnients de ce codage : - le 0 est cod deux fois +0 -0 0000 0000 0000 0000 1000 0000 0000 0000

- ladditionneur de lunit centrale est complexe : ex 1 + (-3) scrit si lon pose lopration daddition binaire classique: 0000 0000 0000 0001 1000 0000 0000 0011 --------------------------1000 0000 0000 0100

somme

ce qui serait le codage de 4 .le rsultat est donc faux Le codage des entiers signs se fait actuellement en complment 2 :

Soit un nombre n de Z. Si le nombre est positif et infrieur ou gal 215 1 (32 768) on le reprsente comme un entier non sign. Si le nombre est ngatif et suprieur ou gal -215 (-32768), le problme est de reprsenter le signe et de pouvoir passer d'un nombre son oppos de faon simple. Une mthode trs rpandue est la mthode du complment 2. On travaille MODULO 216 On reprsente Bin(216 + n) = 65 536 - 547 = 64 989 = 1111 1101 1101 1101 Une vrification de l'expression calcule consiste effectuer une somme bit bit de 547 et de 547 Si la reprsentation est correcte on doit trouver 0 : 0000 0010 0010 0011 + 1111 1101 1101 1101 _____________________________ rsultat 0000 0000 0000 0000 Le report (ou retenue) n'est bien sr pas reprsent. Donc un nombre entier sign reprsent sur 16 bits dont le bit de poids fort est 1 doit tre considr comme un nombre NEGATIF : sa valeur est -(216 - Dec(n2)) Algorithme de conversion d'un nombre en binaire complment 2 sur un octet : Trouver l'oppos d'un nombre en complment 2 : Soit n = 0000 0101 = 5 Son oppos est -5 obtenu en inversant tous les 1 en 0 et tous les 0 en 1 et en ajoutant 1: 0000 0101 --> 1111 1010 + 1 = 1111 1011 = -5 Vrification : 5 + (-5) = 0 0000 0101 + 1111 1011 ---------0000 0000 report ignor

Exercice : Trouver les reprsentations binaires en complment deux sur deux octets des nombres suivants : 31000; -31000 . faire laddition binaire des deux reprsentations conclusion par rapport

au codage signe+ valeur absolue ? -33000 est-il reprsentable ? pourquoi peut on reprsenter -32 768 quel est le codage de 0 (essayer +0 et 0) Les nombres rels ( ne pas faire en cours !!) L'ensemble IR ne peut pas tre reprsent de faon complte en machine. On retrouve les mmes difficults pour reprsenter les rels que pour reprsenter les entiers : l'ordinateur n'a pas une mmoire infinie. On reprsente donc un sous-ensemble fini de IR.Mais on essaye de reprsenter a la fois des nombres trs grands , des trs petits et ceux dusage courant En gnral quand on code un nombre rel, il yaura donc une erreur ( le rel sera cod prs ) . Oprations sur les rels : Opration unaire : - (oppos) Oprations binaires :+ - * / Comparaisons = < > <= >= Fonctions relles : cos sin log puiss sqrt La notation scientifique normalise On appelle notation normalise d'un rel celle o le premier chiffre significatif est plac immdiatement aprs la virgule (ou le point dcimal). Exemple : 1989 = 0.1989 E4 Pour stocker ce nombre en mmoire, il suffit de stocker les informations : exposant 4 et la partie dcimale appele mantisse 1989 Exemple : crire PI en notation normalise E1 Reprsentation des nombres rels en binaire Tout nombre rel peut tre reprsent dans une base quelconque : a = 0.M * Be avec B : base ; e : exposant ; M : mantisse (qui peut tre une suite infinie de chiffres...) En notation normalise on a les conditions : = 3.1415926535... = 0.31415926535

(1/B) <= | M | < 1 ou bien M=0 en base 2 a = 0.M * 2e exemple : 1101,1 qui vaut 13,5 en dcimal scrit suivant cette convention : 0 , 11011 x 2 4 en mlangeant criture binaire et dcimale Les rels sont reprsents en machine selon un standard dfini par l' IEEE Un rel est dcompos en signe + - s exposant caractristique E partie dcimale mantisse F

x = (-1) s * 2E-127 * 1, F
En gnral on reprsente un rel sur 4 octets (32 bits) le bit 0 de poids fort (le plus gauche) est le signe s, soit 0 (positif) ou 1 (ngatif) les bits 1 8 sont la caractristique E qui est reprsente par un entier binaire sur 8 bits dcal de la valeur 127 les bits 9 31 sont pour exprimer la mantisse F en binaire,

Exemple : 0.8 sera cod : s=0 E=126 F . ........ ....................... 0 01111110 10011001100110011001100 codage binaire . ........ ....................... 0 1 8 9 31 n de bit Dcomposition d'un nombre rel dcimal en binaire Soit le nombre 0.8 convertir en binaire. On constate dabord que son signe est positif, donc S=0. On cherche ensuite le dcomposer en une somme de puissances de 2. 0.8 = 20 x 0.8

0.8 x 2 = 1.6 donc 0.8 = 1.6 / 2 = 2-1 x 1.6 = 2-1 x 1 + 2-1 x 0.6 0.6 x 2 = 1.2 donc 0.8 = 2-1 x 1 + 2-2 x 1.2 0.2 x 2 = 0.4 donc 0.8 = 2-1 x 1 + 2-2 x 1 + 2-3 x 0.4 0.4 x 2 = 0.8 donc 0.8 = 2-1 x 1 + 2-2 x 1 + 2-3 x 0 + 2-4 x 0.8 0.8 x 2 = 1.6 donc ... on retrouve une expression dj rencontre qui va se rpter infiniment 0.8 = (-1) x 1. 10011001100110011.... x 2-1 Finalement on ne code que les chiffres binaires de la dcomposition : signe = 0 car 0.8 est positif E = 126 car 126-127 = -1 F = 10011001100110011.... Montrer quon a ainsi cod non pas 0,8 mais une valeur trs approche de 0,8
0

Exemple 2 : 0.75 en base 2 donnera 0.75 x 2 = 1.5 donc 0.75 = 2-1 x 1.5 0.5 x 2 = 1.0 donc 0.75 = 2-1 x 1 + 2-2 x 1.0 0.75 = (-1) x 2 126-127 x 1.10000000000000000000000 Exercice : Montrer que le nombre dcimal 0.1 na pas de reprsentation finie en binaire. Combien de nombres rels sont ils reprsents sans erreur ?

Rels en double prcision En augmentant le nombre d'octets attribus la reprsentation des rels, on amliore la prcision en consacrant plus de bits la mantisse, mais on n'augmente pas l'intervalle des rels reprsents car on conserve le mme nombre de bits pour la caractristique. Codage des informations non numriques Textes Les textes peuvent tre reprsents en binaire condition d'associer chaque lettre de l'alphabet une reprsentation numrique, par exemple son rang dans l'ordre alphabtique : A serait cod1 ; B,de rang 2 serait cod 10 en binaire; C cod 11, etc. Mais ce codage est insuffisant car il faut aussi pouvoir coder les signes de ponctuation . , ; ? ! , distinguer les minuscules des MAJUSCULES, les caractres accentus, etc. La table ASCII (American Standard Code for Interexchange Information) propose un codage de 128 caractres diffrents sur 7 bits. Dans la table ASCII la lettre A est code 65, B est cod 66, C

est cod 67, ... Z est cod 90, a est cod 97, b est cod 98, ... 0 est cod 48, 1 est cod 49, ... 9 est cod 57, ... Les caractres accentus des langues europennes ont ncessit l'ajout d'un huitime bit de codage, d'o la table ASCII tendue avec 256 caractres.

Exercice : Donner le contenu binaire dun octet contenant le code ASCII du a Cest la valeur 97 en base 10 soit 1100001 en binaire Dou 01100001

Quelques dfinitions sur le stockage et le codage :


1 octet ou byte : ensemble de 8 bits 1 mot mmoire : le mot mmoire est une unit de stockage de base pour un ordinateur. Chaque ordinateur dispose dune taille de mot mmoire particulire en gnral les PC actuels ont des mots mmoire de 32 bits soit 4 octets, mais certaines machines ont des mots mmoire plus grands.

La taille dune mmoire centrale ou dun autre support dinformation sexprime en nombre doctets. Ced nombre est toujours une puissance de 2 Ex : 1 Koctet -> kilo octets -> 1024 octets -> 210 octets 1 Moctets -> mga octets -> 1024 koctets -> 220 octets 1 Goctets -> gigaoctets -> 1024 Moctets -> 230 octets 1 Toctets -> teraoctets quelques mots cl du langage C ( ensupposant tre sur une machine mots de 16 bits ?) code ASCII 8 bits char short int unsigned (short/:int) float double

entiers signs 16 bits entiers signs 32 bits entiers non signs (16/32) flottants IEEE 32 bits flottants IEEE 64 bits

Vous aimerez peut-être aussi