Math_Info

Embed Size (px)

Citation preview

  • 7/23/2019 Math_Info

    1/52

    Mathmatiquesappliques

    linformatique

    Luc De Mey

    Ces notes de cours sont disponibles ladresse : www.courstechinfo.be/Math_Info.pdf

    Dernire rvision : 6 mai 2013

  • 7/23/2019 Math_Info

    2/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 1

    Table des matires

    1 Systmes de numration .................................................. ........................................................... ................. 3

    2 Ecriture des nombres entiers ou Numration de position ....................................................... ................. 4

    2.1 Numration de position ........................................................... ........................................................... ....... 4Exercices sur les nombres entiers en base 10 ................................................................................................ 52.1.1 Numration binaire ........................................................ ........................................................... ....... 62.1.2 Numration hexadcimale ....................................................... ........................................................ 7

    2.2 Calcul de la valeur dun nombre quelle que soit la base ......................................................... ................. 7

    2.3 Transcriptions Binaires / Hexadcimale................................................................................................... 8

    2.3.1 Comptons en binaire et en hexadcimal ...................................................... .................................... 82.3.2 Conversions binaireoctal ou binairehexadcimal ..................................................... ....... 8

    2.4 Nombres de codes possibles avec N chiffres en base B ........................................................... ................. 9

    2.5 Prfixes pour reprsenter les puissances de 103................................................... .................................. 10

    2.6 Pour les informaticiens, 1 kilo est-ce 1000 ou 1024 ? ................................................... ......................... 10

    2.7 Calculs approximatifs de 2navec n > 10 ................................................................................................ 11

    Exercices rcapitulatifs ...................................................... ........................................................... ............... 11

    3 Conversion dun nombre N entier en une base B quelconque ....................................................... ..... 12

    4 Autre mthode pour convertir dune base B en base 10 Mthode de Horner ............................... 14

    Exercices ..................................................................................................................................................... 14

    5 Nombres binaires ngatifs......................................................................................................................... 15

    5.1 Comment calculer les codes des nombres ngatifs ? .............................................................................. 17

    5.2 La valeur du bit de signe................................................................... ...................................................... 185.3 Conversions entre mots de diffrentes longueurs ................................................................................... 18

    Exercices ..................................................................................................................................................... 19

    6 Oprations arithmtiques en binaires .......................................................... ............................................ 20

    6.1 Addition ........................................................................ ........................................................... ............... 20

    6.2 Soustraction ............................................................................................................................................ 20

    6.3 Multiplication ................................................................................... ...................................................... 21

    6.4 Division ..................................................... ............................................................ .................................. 21

    7

    Oprations arithmtiques au cur du PC ................................................... ............................................ 22

    7.1 Nombre signs ou non ?.................................................................... ...................................................... 22

    7.2 Au cur du processeur avec DEBUG ......................................................... ............................................ 22

    7.3 Quelques manipulations avec DEBUG ....................................................... ............................................ 22

    7.4 Saisie du programme daddition ....................................................... ...................................................... 23

    7.4.1 Excution du programme : ............................................................................................................ 247.4.2 Vrification de la validit du rsultat: ...................................................................................... ..... 25

    7.5 Exemples de calculs ...................................................... ........................................................... ............... 25

    Exercices ..................................................................................................................................................... 27

    8 Codage des nombres rels ......................................................................................................................... 29

    8.1 Utilit de la virgule flottante ................................................... ........................................................... ..... 29

  • 7/23/2019 Math_Info

    3/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 2

    8.2 Notation scientifique ..................................................... ........................................................... ............... 30

    Exercices ..................................................................................................................................................... 30

    8.3 Nombres fractionnaires binaires ............................................................................................. ............... 30

    8.3.1 Conversion de nombre dcimaux fractionnaires en binaire ........................................... ............... 318.3.2 Exercices ....................................................................................................................................... 31

    8.4 Nombres binaires en virgule flottante "Floating point" ........................................................................ 318.5 Reprsentation en machine ..................................................... ........................................................... ..... 32

    8.6 Valeurs particulires .............................................................................................................................. 33

    9 Les fonctions logiques ...................................................... ........................................................... ............... 35

    9.1 La fonction ET ...................................................................................................... .................................. 36

    9.2 La fonction OU ................................................... ........................................................... ......................... 36

    9.3 La fonction NON ........................................................... ........................................................... ............... 37

    9.4 Combinaisons de fonctions logiques ........................................................... ............................................ 37

    9.5

    Proprits des fonctions logiques ........................................................................................................... 38

    Exercices ..................................................................................................................................................... 39

    10 Les portes logiques .................................................................................................................................... 41

    10.1 Fonctions de base .............................................................................................................................. 41

    AND ............................................................................................................................................................ 41OR ............................................................................................................................................................... 41NOT ............................................................................................................................................................. 41

    10.2 Combinaisons de portes logiques....................................................................................................... 42

    10.2.1 La porte NAND ( Non ET) ........................................................... ............................................ 4210.2.2 Porte NOR (Non OU) ............................................................................................................... 4210.2.3 Porte XOR ................................................................................................................................ 42

    11 Chronogrammes ........................................................................................................................................ 44

    12 Circuits logiques ........................................................................................................................................ 46

    12.1 Comparateur ...................................................................................................................................... 46

    12.2 Dcodeur ........................................................ ........................................................... ......................... 46

    12.3 Multiplexeur ................................................... ........................................................... ......................... 47

    12.4 Dmultiplexeur ......................................................... ........................................................... ............... 47

    12.5 Le demi additionneur half adder Addition de 2 bits = circuit 2 entres................................... 48

    12.6 Le plein additionneur full adder ........................................................................................ ............... 48

    12.7 Addition de deux nombres de n bits ................................................................................................... 49

    Exercices ..................................................................................................................................................... 50

  • 7/23/2019 Math_Info

    4/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 3

    1 Systmes de numration

    La numration estune mthode pour former les nombres

    une convention pour les crire et les nommer

    Pour compter, nous dnombrons une une les units. A partir dune certaine quantit dunitson cre un ensemble dune valeur dtermine auquel on donne un nom et que lon met sur lect pour compter les units suivantes jusqu ce quon puisse les regrouper dans une autreensemble de mme taille. Les regroupements dunits sont leur tour regroups en nouveauxensembles qui portent un autre nom encore.

    Exemple :100 Cents = 1 1000 gr =1 kg, 1000 kg = 1T

    60 sec = 1 min, 60 min = 1h, 24h = 1 jour1 = 60, 1 degr = 60, 1 tour = 360 1 Pouce = 2,54 cm ; 1 Pied = 12 Pouces ; 1 Yard = 3 Pieds ; 1 Mile = 1760 Yards

    Dans la vie courante, on essaie de compter par dizaines, centaines, milliers nous essayonsde nutiliser quune seule base: la base 10.

    Les chiffres arabes sont des signes particuliers pour dsigner les neufs premiers chiffres et lezro. Dix signes nous suffisent pour crire tous les nombres. Les units sont autant quepossible regroupes par dizaines, les dizaines par centaines etc.

    Diffrentes bases :

    Base 60 Utilise en Msopotamie. Il nous en reste 60 minutes, 60 secondes.Le nombre 60 a de nombreux diviseurs : 2, 3, 4, 5, 6, 10, 12, 15, 30.

    Base 20 Utilise par nos anctres gaulois, il nous reste le "quatre-vingts".Quatre-vingt-dix, Soixante-quinze se base sur des multiples de 20.

    Base 12 Pour compter les mois, les heures et les ufs par douzaines

    Base 10 Celle que nous utilisons tous les jours.

    Base 2 Incontournable en informatique. Sans elle ce cours naurait pas lieu.

    Base 16 Ressemble fort au binaire = notation plus concise pour nous humain

    Base 8 Cette base, loctal, tait plus en vogue aux dbuts de la micro-informatique

  • 7/23/2019 Math_Info

    5/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 4

    2 Ecriture des nombres entiers ou Numration de positionConsidrons le nombre 1975. Ce nombre est un "mot" dont les caractres sont les chiffres.Dans ce nombre de quatre chiffres, le dernier reprsente les units, lavant-dernier lesdizaines, le prcdent : les centaines puis viennent les milliers.Cest une numration en base 10.

    Les romains employaient aussi cette base mais crivait leurs nombres diffremment :Voici comment on crit 1975en chiffres romains : MCMLXXVCette criture, plus complique, est encore utilise dans certaines circonstances mais se prtedifficilement aux calculs crits. Essayez donc de faire par crit MMV moins MCMLXXV !Pour les romains, mille, cent, dix et un ne pouvaient que scrire avec des signes diffrentscar ils ne connaissaient pas la numration de position. Ils navaient pas encore dcouvert lechiffre zro qui leur aurait permis dutiliser une numration de position bien plus efficace.

    2.1 Numration de position

    Revenons au nombre 1975(crit de manire habituelle cette fois)

    La valeur que l'on attribue chaque chiffre dpend du chiffre en lui-mme et de sa position.- Le chiffre 5vaut 5 x 1.- Le chiffre 7reprsente des dizaines, il vaut 7 x 10.- Le chiffre 9qui suit reprsente des centaines, il vaut 9 x 100.- Le chiffre 1vaut 1 x 1000.

    Nous formons donc les nombres laide dune notation o la position est trs importante.Le chiffre le plus droite reprsente des units, celui directement gauche, les dizaines, etc.La position que le chiffre occupe dans le nombre est donc considrer partir de la droite.

    Nous numroterons donc ces positions en allant de droite gauche. Ainsi le chiffre de droiteaura toujours le mme numro quelle que soit la taille du nombre.Cette numrotation commencera par le numro 0 pour le premier chiffre ( droite donc)

    3 2 1 0

    1 9 7 5

    La rgle qui permet de dterminer le poids dun chiffre est la suivante :

    Poids dun chiffre = base position

    Voici ce que cela donne dans notre exemple :

    Le poids du chiffre 5 est 100

    , sa valeur est 5 x 1 (car 100

    = 1)Le poids du chiffre 7 est 101, sa valeur est 7 x 10 = 70Le poids du chiffre 9 est 102, sa valeur est 9 x 102= 9 x 100 = 900Le poids du chiffre 1 est 103, sa valeur est 1 x 103= 1 x 1000 = 1000

    Positions 3 2 1 0

    Chiffres dcimaux 1 9 7 5

    Valeurs de chaque chiffre 1 x 103 9 x 102 7 x 101 5 x 100

    1000 900 70 5

    1975 = 1x103+ 9x102+ 7x101+ 5x100

  • 7/23/2019 Math_Info

    6/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 5

    En termes plus mathmatiques, on peut dire que la valeur dun nombre N reprsentparnchiffres en base Best la valeur numrique dun polynme du n-1 imedegr o Best la base et dont les coefficients sont entiers et infrieurs B

    N = cn -1Bn-1 + ... + c iB i+ ... + c2B2 + c1B + c0

    Ici en base 10, x = 10 et les coefficients cn-1, cn-2, ci, , c1, c0 ont tous unevaleur infrieure 10. La suite de ces coefficientscn-1 cn -2 c1 c0 nest autreque la suite des chiffres qui forment le nombre.

    Nous utilisons dsormais uniquement des numrations de position quelle que soit la base denumration.

    EXERCICES SUR LES NOMBRES ENTIERS EN BASE 10

    1. Lorsquon crit un zro droite dun nombre entier, de combien de fois sa valeur

    augmente-t-elle ?

    2. Combien y a-t-il de nombres entiers de deux, trois, quatre chiffres ?

    a. Si on crit les zros non significatifs

    b. Si on ncrit pas les zros non significatifs

    3. Quel est le plus grand nombre entier que lon puisse crire avec quatre chiffres ?

    4. Quel est le plus petit nombre entier que lon puisse crire avec par quatre chiffressignificatifs ?

    5. De combien le plus petit nombre entier de trois chiffres dpasse-t-il le plus grand nombrede deux chiffres ?

    6. a) Quel est le plus petit nombre entier crit avec cinq chiffres significatifs diffrents ?b) Quel est le plus grand nombre entier crits avec cinq chiffres significatifs diffrents ?

    7. Avec les chiffres 1, 2 et 3 former le maximum de nombres diffrents o chaque chiffrenapparat quune seule fois. Classer ces nombres par ordre croissant.

    8. Mme question avec les chiffres 1, 2, 3 et 4

    9. Un livre possde 1000 pages, combien de fois a-t-on employ le caractre 0 pournumroter ces pages ?

    10.On crit la suite naturelle des nombres, quel est le 33iemechiffre crit

    i=n-1

    = ci2ii=0

  • 7/23/2019 Math_Info

    7/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 6

    2.1.1 Numration binaire

    En binaire la base est 2. Nous nutilisons que deux chiffres : 0 et 1.Remarquez quen base 2, le chiffre 2 nexiste pas ; tout comme le chiffre 10 nexiste pas en

    base 10.Il sagit toujours dune numration de position.De droite gauche nous avons donc les units et ce que nous pourrions appeler les"deuzaines", les "quatraines", les huitaines, les seizaines, les "trente-deuzaines" etc. Et tantpis si ce nest pas franais !

    Exemple : que vaut le nombre binaire 10110 ?Le poids dun chiffre dpend de sa position et de la basePoids = base position ici en binaire le poids = 2 position

    Positions 4 3 2 1 0

    Chiffres binaires 1 0 1 1 0

    Valeurs de chaque chiffre 1 x 24 0 x 23 1 x 22 1 x 21 0 x 20

    16 0 4 2 0

    On a donc ici une seizaine, une "quatraine" et une "deuzaine" soit 16 + 4 + 2 = 22

    Un peu de vocabulaire : Bit, Byte, Octet, ... et autres Mots

    Les codes binaires sont incontournables en informatique car linformation la plus lmentairey est le bit (Binary digit chiffre binaire)

    Les mots de 8 ou de 16 bits crits en binaire sont plus lisibles si on les inscrit en laissant unespace entre les groupes de quatre bits comme ceci : 0100 0001

    Un groupe de 4 bits est parfois appel "Quartet" ou "nibble" mais ces termes sont peu utiliss.

    On a avantage reprsenter les zros non significatifs pour montrer la taille des codestranscrits. Remarquez que ces 0 gauche ne sont dailleurs pas toujours "non significatifs".En effet, les codes binaires ne reprsentent pas toujours des valeurs numriques. Ce sontparfois simplement des codes qui ne reprsentent pas des quantits et qui nont pas non plusde valeur ordinale. Inutile donc de faire de larithmtique avec ces codes. Dans ce cas cela naaucun sens de vouloir les convertir en dcimal et ce serait une erreur domettre lcriture deszros gauche.

    En termes plus mathmatiques, on pourrait dire que les bits ncessaires pour crire lavaleur N proviennent de la srie des coefficients du polynme suivant :

    N = bn-12n-1 + .. . + b i2 i+ ... + b222+ b12 + b0

    Les coefficients bn-1 b i ,b2 ,b1 etb0valent chacun 0 ou 1.

    Cest la srie de bits pour crire N en binaire.

    i=n-1

    = bi2ii=0

  • 7/23/2019 Math_Info

    8/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 7

    2.1.2 Numration hexadcimale

    La base est 16. Il nous faut donc 16 chiffres, nous avons dj les chiffres 0 9, ajoutons-y lescaractres A, B, C, E et F pour reprsenter les "chiffres" allant de 10 15.

    Remarquez quen base 16, le chiffre 16 nexiste pas ; tout comme le chiffre 10 nexiste pas endcimal ni le chiffre 2 en binaire.

    Nous appliquons toujours les mmes principes de la numration de position.

    Le poids dun chiffre dpend de sa position et de la base

    Poids = base position ici en hexadcimal le poids = 16 position

    De droite gauche nous avons donc les units puis les "seizaines", les "256zaines" etc.

    Exemple : que vaut le nombre hexadcimal 1A2F ?

    Positions 3 2 1 0

    Chiffres hexadcimaux 1 A 2 F

    Valeurs de chaque chiffre 1 x 163 10 x 162 2 x 161 F x 160

    4096 2560 32 15

    Laddition des valeurs de ces 4 chiffres donne : 4096 + 2560 + 32 + 15 = 6703

    N = cn 16n + ... + c i 16i+ ... + c2 162+ c1 16 + c0

    2.2 Calcul de la valeur dun nombre quelle que soit la base

    Appliquez le principe de la numration de position. Chaque chiffe dans le nombre valuer une valeur qui dpend de sa position : la valeur propre du chiffre multiplie par la baseexposant la position. Additionner les valeurs obtenues pour chaque chiffre.

    Exemples :10110112 = 1x 26+ 0x 25+ 1x 24+ 1x 23+ 0x 22+ 1x 21+ 1x 20

    = 64 + 0 + 16 + 8 + 0 + 2 + 1= 91

    1758 = 1 x82 + 7x81+ 5x 80= 1 x 64 + 7x 8 + 5x 1= 125

    7D16 = 7 x 161+ 13 x160= 7 x 16 + 13 x 1

    = 112 + 13= 125

    i=n-1

    = ci16ii =0

  • 7/23/2019 Math_Info

    9/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 8

    2.3 Transcriptions Binaires / Hexadcimale

    Les codes hexadcimaux sont bien pratiques en informatique. Ils reprsentent les codesbinaires de manire compacte et nous vitent de devoir lire de longues enfilades de 0 et de 1qui conviennent mieux aux ordinateurs quaux humains.

    Un groupe de quatre bits permet de former 16 combinaisons diffrentes. On peut fairecorrespondre un chiffre hexadcimal chacune de ces combinaisons. Lhexadcimal est enquelque sorte du binaire condens.

    Le code hexadcimal 1A2F est bien plus lisible que 0001 1010 0010 1111 en binaire

    2.3.1 Comptons en binaire et en hexadcimal

    Sachez compter jusqu 16 en binaire et enhexadcimal et vous pourrez transcrire rapidementnimporte quel nombre en passant dune base

    lautre.Apprenez pour cela reproduire le tableau ci-contre :

    Exercez-vous avec la petite application reprsentesci-dessous et que vous pouvez tlcharger ladressesuivante :

    http://courstechinfo.be/Bases/SysInfo.html#Hexa

    Dcimal Binaire Hexa

    0 0000 0

    1 0001 1

    2 0010 2

    3 0011 3

    4 0100 4

    5 0101 5

    6 0110 6

    7 0111 7

    8 1000 8

    9 1001 9

    10 1010 A

    11 1011 B

    12 1100 C

    13 1101 D

    14 1110 E

    15 1111 F

    2.3.2 Conversions binaire octal ou binaire hexadcimal

    Octal binaire o lon regroupe les bits par groupe de 3 (en commenant par la droite)

    Hexa binaire quand on regroupe les bits par 4.

    (Transition vers paragraphe suivant : Calculer lpaisseur dune feuille de papier cigarette plie 42 fois. )

  • 7/23/2019 Math_Info

    10/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 9

    2.4 Nombres de codes possibles avec N chiffres en base B

    Partons de lexemple des nombres dcimaux1 chiffre 10 codes diffrents

    2 chiffres

    100 codes car pour chaque dizaine on peut associer 10 codes pour les units3 chiffres 1000 codes ( de 000 999)n chiffres 10ncodes

    En hexadcimal1 chiffre 16 codes ( de 0 F)2 chiffres 16 x 16 codes = 256 (00 FF)n chiffres 16ncodes possibles

    En binaire1 chiffre binaire = 1 binary digit= 1 bit

    1 chiffre 2 valeurs possibles 0 et12 chiffres 4 combinaisons possiblesn bits 2ncodes possibles

    Tailles des nombres entiers :1 byte ou un octet = 8 bits 256 codes possiblesMot de 2 bytes = 16 bits 216= 65536 codes possibles

    parfois appel word, shortou integerMot de 4 bytes = 32 bits 232= 4 milliards de codessouvent appel long= taille dun registre lheure des Pentiums

    Conclusion

    Nombre de codes possibles avec Nchiffres en base B = BN

  • 7/23/2019 Math_Info

    11/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 10

    2.5 Prfixes pour reprsenter les puissances de 103

    Nous sommes amens en informatique devoir chiffrer des grandeurs trs grandes et d'autrestrs petites. La pratique du systme mtrique nous a habitus exprimer ces nombres l'aidede multiples de 10 et mme souvent de 1000. Cela correspond notre habitude de regrouperles chiffres par trois comme dans 1 000 ou 1 000 000 = 103et 106

    Pour les grands nombres, les puissances successives de 103portent ces noms :Kilo 1 k = 10 3

    Mga 1 M = 10 6Giga 1 G = 10 9Tera 1 T = 10 12Peta 1 P = 10 15Exa 1 E = 10 18

    Les petits nombres s'expriment au moyen des puissances de 10-3:milli 1 m = 10-3micro 1 = 10-6nano 1 n = 10-9pico 1 p = 10-12femto 1 f = 10-15

    Exercices :

    1 Combien il y a-t-il de s dans une ms ?

    2 Les physiciens utilisent lAngstrm comme unit pour mesurer les trs petitesdimensions. Cest le cas par exemple pour les dimensions des atomes. Un Angstromest un dix-milliardime de mtre Comment peut-on crire cette distance en ne serfrant quaux units vues ci-dessus ?

    2.6 Pour les informaticiens, 1 kilo est-ce 1000 ou 1024 ?

    Nous savons que 210= 1024.

    Ce nombre proche de 1000est souvent dsign par le prfixe "kilo".

    - Quand il sagit de dimension de mmoires, on parle de KB(kilo bytes) ou de Ko(kilooctet) pour dnombrer des multiples de 1024 bytes. De mme 1 MB ou 1 Mo =1024x1024 bytes quand on parle de tailles de mmoire car le nombre de cellulesmmoire dans n composant est toujours une puissance de 2 et donc un multiple de 210ou 220.

    - Dans les autres cas, quand les kilos, les mgas et autres gigas ne concernent pas lammoire tous ces prfixes reprsentent des multiples de 1000. 1 kHz = 1000 Hz20 Gosur un disque = 20 milliards doctets et non pas 20x1024x1024x1024.

    Notez que le prfixe kilo scrit toujours avec un kminuscule quand sa valeur est 1000.Ex. 1 kHz. 1k = 1000

    Les informaticiens crivent souvent ce prfixe avec une lettre majuscule pour dsigner la

    valeur 1024.Ex. 1Ko. 1K = 1024

  • 7/23/2019 Math_Info

    12/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 11

    2.7 Calculs approximatifs de 2navec n > 10

    2 1 0 10 3 car 1024 1000

    Il est facile de calculer approximativement et mentalement ce que vaut 2nds que n > 10.

    Exemple que vaut 224?

    224= 24 x 210 x 210= 16 x1024 x1024 = 16 M 16.000.000

    Conclusions : Puisque 210103on a directement 220106

    230109

    2401012

    etc.EXERCICES

    1 Calculer212, 232, 216, 227, 236

    2 Les premiers PC, les PC/XT, avaient un bus dadressage form de 20 lignes dadresse.Ces lignes ne pouvant vhiculer que des codes binaires 0 ou 1 pour former les adresses descellules mmoire. Quelle tait la taille maximum de la mmoire pour ces PC ?

    3 On aura bientt utilis tous les codes de numro dimmatriculation composs de 3lettres suivies de 3 chiffres pour les plaques belges. Combien de nouveaux codesdimmatriculation pourra-t-on faire en plaant cette fois dabord 3 chiffres puis 3 lettres ?

    EXERCICES RCAPITULATIFS

    C016=

    1010 0010 2=

    Compltez le tableau :Binaire Hexadcimal Dcimal

    1 0000 000050

    102040

    80

    Octal Binaire Hexa12

    5655244371

    Quelques fractions de secondes :

    1 s = . . . . . . . . ms 0,018 s = . . . . . . . . ns 0,01 ns = . . . . . . . . ps

    3600 ps = . . . . . . . . ns 1 s = . . . . . . . . ms 0,05 s = . . . . . . . . . ms

  • 7/23/2019 Math_Info

    13/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 12

    3 Conversion dun nombre N entieren une base B quelconque

    RAPPEL:

    Nous avons vu au paragraphe 2.2 comment convertir un nombre de base quelconque en base10. Il suffit pour ce faire davoir compris le principe de la numration de position. Chaquechiffre une valeur qui dpend du chiffre lui-mme et de sa position. On obtient la valeurdun nombre en additionnant les valeurs des chiffres qui le composent.

    Une autre manire dexprimer la mme chose est de dire quen lisant un nombre de droite gauche on rencontre les puissances successives de la base :

    - units, deuzaines, quatraines, huitaines, seizaines etc. pour le binaire (base 2)- units, huitaines, soixante quatraines etc. pour loctal (base 8)- units, dizaines, centaines, milliers, etc. pour le dcimal (base 10)- units, seizaines, deux cent cinquante seizaines, etc. pour lhexadcimal (base 16)

    Voyons prsent comment coder dans une base B quelconque un nombre N dont on connatla valeur, cest dire son criture en base 10. Il faut pour cela dnombrer les puissancessuccessives de la base :

    - le nombre dunits, de deuzaines, de quatraines etc. pour convertir en binaire- le nombre dunits, de seizaines, etc. pour convertir en base 16

    Il y a pour ce faire deux mthodes : de "gauche droite" et de "droite gauche"

    Mthode intuitive : de gauche droite

    Quelle est la plus grande puissancepde la base B que lon puisse retrouver dans N etcombien de fois retrouve-t-on Bpdans N? Cela donne le premier chiffre gauche, en

    positionp.Exemple : Soit convertir 420(10)en base 16.420(10)> 16, 16=256 va une fois dans 420premier chiffre = 1.en position 2Reste reprsenter 420 1x16= 164 units

    On rpte la mme question tant que le reste est suprieur la base.164(10)> 161, 161va 10 fois dans 164chiffre suivant = A(16)en position 1Reste 164 10x16 = 4 units

    Le nombre dunit qui reste infrieur B est le chiffre le plus droite en position 0.

    Vous trouverez ladresse http://www.courstechinfo.be/MathInfo/PoidsDesBits.html unexercice pour vous habituer aux "poids des bits" pour les reprsentations en binaire.

    Base 10Base B

  • 7/23/2019 Math_Info

    14/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 13

    Mthode systmatique : de droite gauche

    Le nombre dunits est le reste de la division de N par la base. Ce qui donne le chiffre enposition 0 et dont le poids est B0.En divisant nouveau le quotient de la division prcdente par la base on obtient le chiffre deposition 1 dont le poids est B1Des divisions rptes par la base donnent successivement les chiffres de poids B0, B1B2, B3,B4etc. ce qui nous permet dcrire le nombre de droite gauche.

    Exemples : Convertir 183010en binairedivisions successives par 2

    1830: 2 = 915 reste 0 0 * 20= zro unit

    915 : 2 = 457 reste 1 1 x 21

    457 : 2 = 228 reste 1 1 x 22

    228 : 2 = 114 reste 0 0 x 23

    114 : 2 = 57 reste 0 0 x 24

    57 : 2 = 28 reste 1 1 x 25

    28 : 2 = 14 reste 0 0 x 26

    14 : 2 = 7 reste 0 0 x 27

    7 : 2 = 3 reste 1 1 x 28

    3 : 2 = 1 reste 1 1 x 29

    1 : 2 = 0 reste 1 1 x 210

    0 Cest fini, il ne reste plus rien diviser

    Le rsultat est : 111 0010 01102

    Convertir 1830en hexadcimaldivisions successives par 16

    1830: 16 = 114 reste 6 0 * 160= zro unit

    114 : 16 = 7 reste 2 1 x 161

    7 : 16 = 0 reste 7 1 x 162

    0 Cest fini, il ne reste plus rien diviser

    Rsultat : 72616 ( ce qui concorde bien avec le code 111 0010 01102trouv en binaire)

    Conclusions :

    Ce procd fonctionne pour toutes les bases mais en informatiques seuls nousconcernent le binaire et lhexadcimal, parfois mais plus rarement loctal ( base 8). Laconversion en binaire est la plus facile, le reste vaut 0 pour les nombres pairs et 1 pourles nombres impairs.On a donc avantage convertir dabord en binaire. Le passage en hexadcimal commenous lavons vu au dbut du cours nest plus alors quun jeu denfant.

  • 7/23/2019 Math_Info

    15/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 14

    4 Autre mthode pour convertir dune base B en base 10 Mthode de Horner

    Nous avons vu au paragraphe 2.2 comment calculer la valeur dun nombre quelle que soit labase utilise pour le reprsenter. Nous additionnions les valeurs obtenues en calculant les

    valeurs de chaque chiffre compte tenu de leurs positions dans le nombre.

    La mthode qui suit donne le mme rsultat, ceux qui aiment suivre des "recettes de cuisines"la trouveront plus systmatique.

    Montrons comment cela marche pour le binaire mais la mthode est valable quelle que soit labase.

    Voici lalgorithme :Lire la valeur du chiffre gaucheRpter tant quil reste des chiffres droite

    !ultiplier par la "ase#$outer le chiffre suivant

    %

    Exemples :11012 = (((( 1x 2 ) + 1) x 2 + 0) x 2 +1

    1 1 0 1

    2 6 123 6 13

    1238 = ((( 1x 8 ) + 2) x 8 ) + 3

    1 2 3

    8 80

    10 83

    20C16 = ((( 2x 16 ) + 0) x 16 ) + 12

    2 0 12

    32 64

    32 76

    EXERCICES

    Rechercher par la mthode de Hornner :2038= . . . . 1010102= . . . . 20A16= . . . . . . . .

    Mthode au choix :

    16610=. . . .16 COCA16= . . . . 10

    10010=. . . .2 10110112= . . . . 10

    10010= . . . . 16 2368= . . . . 10

    102310= . . . . 16 FFF16= . . . . 10

    102310=. . . .2

  • 7/23/2019 Math_Info

    16/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 15

    5 Nombres binaires ngatifsNous avons jusqu prsent parl de nombres entiers positifs ou nuls.

    En dcimal,1, 2, 3 etc. sont des nombres positifs, ils sont suprieurs 0 ( >0 )

    -1, -2, -3 etc. sont des nombres ngatifs, ils sont infrieurs 0 ( < 0 )De mme en binaire,

    1, 10, 11, 100, 101 etc. sont des nombres binaires positifs,-1, -10, -11, -100, -101 etc. sont des nombres binaires ngatifs.

    Le problme est que les circuits lectroniques digitaux ne peuvent enregistrer que des 0 oudes 1 mais pas de signes + ou -. Le seul moyen est alors de convenir que si un nombre estsusceptible dtre ngatif on lui rserver un bit pour indiquer le signe. Reste dterminer lebit qui dans un nombre binaire conviendrait le mieux pour symboliser le signe et quelcaractre (0 ou 1) conviendrait le mieux pour reprsenter le signe "plus" ou le signe "moins".

    Sur papier, les nombres ont des dimensions variables : en additionnant deux nombres de deuxchiffres on obtient un nombre de deux ou trois chiffres, en multipliant deux nombres de deuxchiffres ont obtient des nombres de 3 ou 4 chiffres.

    En machine par contre, les nombres ne sont pas extensibles. Ils ont des dimensions fixes.Cest exactement ce que nous avons sur le compteur kilomtrique dune voiture. Sil est desix chiffres, le kilomtrage maximum quil pourra indiquer est 999.999 km. Cestgnralement suffisant. De mme, dans les ordinateurs les nombres (binaires) ont aussi desdimensions fixes de 1, 2, 4 ou 8 octets.

    Revenons lexemple de la voiture et imaginez un compteur kilomtrique qui compte les km

    en marche avant et qui les dcompte en marche arrire. Que pourrait-on lire sur un compteurdune voiture neuve (compteur initialement 000.000) si elle parcourt 1 km en marchearrire ? Le compteur dcompte 1 km et affiche donc 999.999 km ! Ce code correspondparfaitement la valeur 1 puisquon obtient 0 si on lui ajoute nouveau 1.

    x + 1 = 0 x = -1 dans ce cas ci 999.999 quivaut -1

    Cette caractristique trange est due au fait que ce nombre une dimension finie ( 6 chiffresdcimaux)

    De mme, quel serait le code dun nombre de 8 bits pour reprsenter la valeur 1 ?Le code &&&&&&&&2 (= ''16) convient puisque, si on ajoute 1 ce nombre, on obtient

    ((((((((2 (ou ((16 ), le bit de report dborde gauche de lespace qui est rserv aunombre, ce bit est ignor.

    Le bit le plus gauche du mot binaire est 1, cest ce bit qui va reprsenter le signe.Le tableau de la page suivante montre ce que cela donne avec des nombres de 8 bits

  • 7/23/2019 Math_Info

    17/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 16

    Si on admet que le nombre peut reprsenter desvaleurs ngatives, on parle de nombres"signs".

    Comme pour les nombres "non signs", on peut

    reprsenter 28

    = 256 codes avec 8 bitsmais ici le bit de gauche est le signe1 = signe moins0 = signe plus

    Il y a donc moyen de reprsenter

    128 codes avec le bit de signe 1ce sont 128 nombres ngatifs( de 1 128)

    128 codes avec le bit de signe 0

    le nombre 0 et 127 nombres positifs( de 1 +127)

    Nombres de 8 bits Valeur enbase 10Lu en

    hexadcimalLu en binaire

    7F 0111 1111 1277E 0111 1110 126

    10 0001 0000 160F 0000 1111 15OE 0000 1110 14OD 0000 1101 13OC 0000 1100 120B 0000 1011 110A 0000 1010 1009 0000 1001 908 0000 1000 8

    03 0000 0011 302 0000 0010 201 0000 0001 100 0000 0000 0FF 1111 1111 -1FE 1111 1110 -2FD 1111 1101 -3FC 1111 1100 -4FB 1111 1011 -5FA 1111 1010 -6F9 1111 1001 -7 86 1000 0110 -12285 1000 0101 -12384 1000 0100 -12483 1000 0011 -12582 1000 0010 -12681 1000 0001 -12780 1000 0000 -128

  • 7/23/2019 Math_Info

    18/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 17

    5.1 Comment calculer les codes des nombres ngatifs ?

    Le calcul se fait en deux tapes :

    1 Calcul du complment 1 = Remplacer tous les 0 par des 1 et tous les 1 par des 0.

    2 Calcul du complment 2 = Ajouter 1 au complment 1

    Exemple : comment crire 4 en binaire ou en hexadcimal ?+4 = 0000 0100complment 1 = 1111 1011

    +1

    complment 2 = 1111 1100 = FC = - 4

    Cas particuliers :

    - Le complment 2 de 0 est encore 0

    - Le complment 2 de 80H est aussi 80H ! Les nombres ngatifs et positifs ne sont pasrpartis symtriquement. Avec un byte la valeur minimum est 128 contre +127 pourla valeur positive.

    NB. Le complment 1 est aussi appel "complment logique" ou "complment restreint"De mme, certains dsignent le complment 2 par lexpression "complment arithmtique".

    Analogie en dcimal

    25

    -1708

    Existe-t-il un complment arithmtique de 17tel que 25 + Complment de 17 = 8 ?

    Oui, condition de dcrter que comme dans une machine les nombres ont unetaille fixe au-del de laquelle les reports sont ignors.

    Puisque deux chiffres suffisent pour crire 25, 17 et 08 nous limitons la taille de ces nombres 2 caractres.La question devient : Quel nombre faut-il ajouter 25 pour que la rponse se terminer par leschiffres 08 ?Ce nombre est 83. En effet 25 + 83 = 108 mais on ignore le 1 gauche puisque nous avonsdcid de donner une taille fixe de deux chiffres pour les nombres de cet exemple.

    83 est donc dans ce cas le complment arithmtique de 17.

    Comment trouver ce complment arithmtique en base 10 ?La mthode ressemble fort au calcul du complment 1 comme en binaire suivi de ladditiondune unit. Ici, en dcimal, le complment restreint sera un complment 9.Complment 9 : 99

    -17

    82

    Complment arithmtique : 82 +1 = 83

    99 17 + 1 = 100 17 = 83

  • 7/23/2019 Math_Info

    19/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 18

    5.2 La valeur du bit de signe

    Le bit de signe est le bit le plus significatif du code ( MSBMost Significant Bit), celui quiest le plus gauche. Dans le cas dun nombre de n bits numrots de 0 n-1, cest lebit n-1 . Bien souvent on se contente de constater que ce bit est 1 pour en conclure quele nombre considr est ngatif. La valeur absolue de ce nombre est alors dtermine encalculant le complment arithmtique de son code.Une autre manire denvisager la chose serait de considrer que le bit n-1 a,contrairement aux autres bits, une valeur ngative : - 2 n-1

    Exemple :Si un byte est considr comme un code sign le bit 7 quand il est 1 vaut -128.Si le byte est considr comme non sign, le poids du bit 7 est simplement 27= 128.Ainsi -123 = -128 + 5 = 80H + 5 = 85H

    Plus gnralement :

    Pour les nombres non signs nous calculions la valeur du nombre comme suit :

    N = bn -12n -1 + ... + b i2 i+ ... + b222+ b12 + b0

    Dans le cas des nombres signs la valeur sera

    N = - bn-12n-1

    + bn-22n-2

    + ... + b i2i

    + ... + b222

    + b12 + b0

    5.3 Conversions entre mots de diffrentes longueurs

    Pour tendre la taille dun nombre non sign, on ajoute des 0 sa gauche.Pour tendre la taille dun nombre sign, ajoute sur la gauche des bits identiques au bit de

    signe.Exemples :

    -4 code sur un byte = FC16 sur deux bytes ce code devient FFFC16

    = 1111 11002 = 1111 1111 1111 11002

    +4 en un byte = 0416 sur deux bytes = 000416

    = 0000 01002 = 0000 0000 0000 01002

    i=n-1

    = bi2ii =0

    i=n-2

    =-2 n-1+ bi2ii =0

    Extension du

    bit de signeBit de signe

  • 7/23/2019 Math_Info

    20/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 19

    EXERCICES

    1. Dterminez les valeurs des complments logiques et arithmtiques des codes binairessuivants :

    Complment 1 Complment 21100 1001

    0000 1111

    0111 0011 0001 0000

    2. Calculer les complments 1 et 2 pour les nombres suivants exprims sous formehexadcimale. Faites le calcul en binaire puis notez la rponse en hexa.

    AA(16)

    FF(16)

    1248(16)

    3. Que vaut le code C0(16)

    a) sil sagit dun nombre non sign ?

    b) sil sagit dun nombre sign ?

    4. Les codes suivants ont une taille de 16 bits, ils sont signs et donns en hexadcimal.Calculez leurs valeurs et donnez la rponse en dcimal.

    FFFF8000

    7FFF

    00FF

    5. Quelles sont les valeurs minimum et maximum que peut prendre un nombre entiersign cod sur 4 octets ?

    6. Comment crire -512 en binaire ? Combien faut-il de bytes au minimum pour encodercette valeur ?

    7. Quel est le plus petit nombre entier ngatif qui puisse tre trait dans les registres dunPentium 64 bits ?

    8. La valeur -192 peut-elle tre code sur un byte ? justifiez votre rponse.

    9. Comment crire -150 en binaire et en hexadcimal ?

    10. Que vaut 8001(16)selon que ce code de 2 octets est sign ou non sign ?

  • 7/23/2019 Math_Info

    21/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 20

    6 Oprations arithmtiques en binairesNous nous limitons dans ce chapitre au cas des nombres entiers.

    Aussi tonnant que cela puisse paratre, il faut bien lavouer, ce nest qu de trs raresoccasions quun informaticien est amen faire par crit des calculs en binaire ou en

    hexadcimal. On dispose bien souvent dune machine, une calculatrice ou un ordinateur, pourraliser de telles oprations. Il est cependant important de connatre les mcanismes de cesoprations pour saisir comment ces machines fonctionnent, tout comme nous nous sommesattachs comprendre les mthodes des changements de bases ou du codage des nombressigns.

    Les calculs en binaire (ou en hexadcimal) peuvent toujours se faire exactement de la mmemanire que ceux que nous faisions lcole primaire en base 10.

    6.1 Addition

    Un plus un fait deux, cest un fait indpendant du mode de reprsentation des nombres.

    En binaire, deux scrit 10 1(2)+ 1(2)= 10(2) 1 + 1 = 2, jcrit 0 et je reporte 1 De mme (1+1+1=3) 1(2)+ 1(2)+ 1(2)= 11(2) 1 + 1 + 1 = 3 ; jcrit 1 et je reporte 1

    Pour le reste 0 + 0 = 0, 0 + 1 = 1 et 1 + 0 = 1Ces trois derniers calculs nengendrent aucun report.

    Vous en savez assez maintenant pour additionner par crit deux nombres de nbits.Il suffit daligner convenablement ces deux nombres, lun au dessus de lautre, une colonne droite pour les units puis successivement vers la gauche les colonnes des deuzaines, desquatraines etc.Additionnez ensuite les bits en commenant par la droite sans oublier de noter les reports.

    Exemple :

    Remarquez que lopration convient aussi bien pour les nombres non signs que pour lesnombres signs. Une rgle est cependant essentielle : convenir pour chaque variable du modesign ou non sign une fois pour toute et ne jamais plus changer de convention.

    6.2 SoustractionSi vous y tenez, vous pouvez appliquer nouveau la mme mthode qu lcole primaire.Aligner le nombre soustraire sous le premier nombre puis on effectue la soustraction encommenant par les chiffres droite. Si le chiffre du dessous est trop important, il fautenregistrer une "retenue" quon retranche dans le calcul de la colonne suivante.

    Exemple : On peut appliquer exactement le mme procd en binaire :

    Sachez toutefois que mme les machines ne se donne jamais ce mal.Plutt que de faire une soustraction elles additionnent le complment du terme soustraire.

    10110101

    + 100111

    1 1 1 1

    10110101

    + 100111

    11011100

  • 7/23/2019 Math_Info

    22/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 21

    Plutt que de soustraire un nombre nous allons ajouter son complment. La mthode na desens que pour des nombres ayant une taille finie. Reprenons lexemple ci-dessus et fixons lataille des nombres 8 bits.

    Nous additionnerons donc le complment de 00011011Complment 1 11100100Complment 2 00011011

    6.3 Multiplication

    0 1

    0 0 0

    1 0 1

    Comme pour toutes les bases, pour multiplier par la base il suffit dajouter un zro droite dunombre. En binaire cela revient multiplier le nombre par 2.

    6.4 Division

    Ici aussi, nous pouvons utiliser la mme mthodeque lors des calculs crits en dcimal.

    En binaire, lcriture des multiples de 2 se terminepar le chiffre 0. Pour diviser par 2, il suffit doncdenlever le zro droite du nombre.

    Ex.10 / 2 = 5 1010(2)/ 10(2)= 101(2)

    Conclusion de ce chapitre :

    Mis part les additions, il est fort rare de faire des oprations arithmtiques en binaire " lamain" comme il est tout aussi rare de faire de linformatique sans machine. Le but du chapitretait de comprendre comment se font les oprations afin de pouvoir imaginer ce qui se passedans les machines, et dtre capable de comprendre et dinterprter les rsultats, ce quoinous nous attacherons dans le chapitre suivante

    Les multiplications crites se font de la mme manire enbinaire que en dcimal. Il suffit de connatre la table demultiplication par 0 et par 1.

  • 7/23/2019 Math_Info

    23/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 22

    7 Oprations arithmtiques au cur du PC

    7.1 Nombre signs ou non ?

    Dans les chapitres prcdents nous avons appris comment les nombres entiers sont codsen binaire. Nous avons aussi vu comment le processeur traite ces codes pour faire des

    oprations arithmtiques.La question qui est souvent pose est : Comment le processeur sait-il si les nombresbinaires sont considrer comme signs ou comme non sign ? Rponse : lordinateur nen sait rien. Peu importe pour lui que les nombres soient signsou non, de toutes manires cela ne change en rien sa manire de faire les calculs.Le programmeur par contre doit savoir si les codes quil assigne chacune de ses auxvariables entires sont des nombres signs ou non, en fonction de quoi il pourrainterprter le code ''comme -1 ou 255.

    7.2 Au cur du processeur avec DEBUG

    DEBUG est un utilitaire de mise au point qui fonctionne en mode invite de commande.Il nous fait voir lordinateur comme si nous tions la place du microprocesseur.DEBUG nous montre et nous laisse modifier le contenu des registres du CPU et celui dela mmoire vive. Les modifications se font en hexadcimal mais il est mme possible delire et dcrire des instructions en langage assembleur.Pour plus de renseignement sur DEBUG lisez la demi-douzaine de pages qui se trouve ladresse http://courstechinfo.be/OS/Debug.pdf

    7.3 Quelques manipulations avec DEBUG

    Lancer DEBUG :

    C:\>DEBUG-

    Vous tes en mode invite de commande, tapez DEBUG puis la touche [Enter]. Vousverrez apparatre un tiret. Ce signe est linvite par laquelle le programme DEBUG voussignale quil est prt recevoir une commande. Toutes les commandes se font ensuite entapant une seule touche suivie dventuels paramtres.

    Premire commande : le point dinterrogation ?-?

    DEBUG affiche une aide succincte. On y lit par exemple que pour quitter il faudrautiliser la commande q. NB. DEBUG ignore la casse.

    -D 100=> DUMP de 128 bytes partir de ladresse 100154F:0100 3D 00 80 90 90 00 00 00-00 00 00 00 00 00 00 00 =...............

    154F:0110 00 00 00 00 00 00 00 00-00 00 00 00 34 00 3E 15 ............4.>.

    154F:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................

    Les adresses sont donnes en deux parties : une adresse de segmentet un dplacement parrapport cette rfrence appel offset.Ladresse du premier byte affich est donc du genre 154F:0100Ladresse de base est dans ce cas 154F, elle est dtermine par le systme dexploitationen fonction des autres applications dj charges en mmoire. Le segment que Windowsvous accorde pour vos exprimentations est ici le segment 154F.Loffset est 0100, cest bien ce que vous aviez demand par la commande "D 100"Chaque ligne affiche 16 bytes en hexadcimal avec sur la droite des caractres quicorrespondent aux codes ASCII de ces bytes quand ils sont imprimables.

  • 7/23/2019 Math_Info

    24/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 23

    -F 100 L 80 00

    => Remplir partir de ladresse 100, 80 bytes avec le code 00

    F pour "Fill" = Remplir

    Vrifiez ce qui a chang avec la commande Dump : D 100

    -E 100 "ABCDEFabcdef1234567890"

    => Entrer partir de ladresse 100 les codes ASCII de la suite de caractres

    ABCDEFabcdef1234567890

    Vrifiez : D 100

    -E 100 40 20

    => Cette fois les codes ont t taps en hexadcimal, octet par octet.

    Vrifier ce que cela donne.

    -R

    => Demander laffichage des registresAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

    DS=154F ES=154F SS=154F CS=154F IP=0100 NV UP EI PL NZ NA PO NC

    154F:0100 3D0080 CMP AX,8000

    Ne considrons que les registres principaux :

    DS, ES, SS et CS sont des registres de segments.Ils contiennent ici ladresse du segment que lOS nous a allou.

    AX, BX, CX et DX sont des registres "gnraux" ils sont destins contenir des

    donnes.IP est l "Instruction Register" parfois aussi appel "Program

    Counter" ou "compteur ordinal". Il contient en permanenceladresse de la prochaine instruction et sincrmente au fur et mesure que les instructions sont lues pour tre excutes.

    Les flags sont des bits indicateurs qui basculent dans un tat ou lautre (0 ou 1) enfonction des oprations arithmtiques ou logiques excutes par le processeur :

    ZR/NZ le flag ZERO indique si la dernire opration donne un rsultat nul.

    PL/NG le flag de SIGNE indique si le rsultat est positif ou ngatif.

    CY/NC

    le flag de CARRY passe 1 si la dernire opration donne lieu un report.OV/NV le flag dOVERFLOW indique si le dernire opration donne un rsultatincohrent pour des nombres sont signs.

    Les tats de ces flags sont pris en compte par les instructions de branchementsconditionnels telles que JZ (jump on zero) ou JNZ (jump on non zero).

    7.4 Saisie du programme daddition

    Encodons prsent quelques lignes en assembleur. Nous utilisons pour cela la commandeA du DEBUG en indiquant que nous plaons le programme ladresse 100. Lesinstructions peuvent tre encodes indiffremment en minuscules ou en majuscules.

  • 7/23/2019 Math_Info

    25/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 24

    Les deux premires instructions vont mettre deux valeurs 1234et 5678respectivementdans les registres AX et BX. La troisime instruction indique au microprocesseur quildoit ajouter la valeur donne par BX celle contenue dans AX.NB. Quand linstruction se rfre deux oprandes, la premire dsigne la destination etla seconde reprsente loprande source. Ainsi "MOV AX,BX" quivaut (AX)(BX)-A 100

    154F:0100 MOV AX,1234 (AX)

  • 7/23/2019 Math_Info

    26/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 25

    7.4.2 Vrification de la validit du rsultat:

    Cette vrification se fait en consultant les indicateurs de report et de dpassement.

    Lindicateur de report (carry) concerne uniquement les oprations sur des nombresnon signs. Le carry passe 1 si la somme des deux nombres produit un report qui

    sort des nbits allous la rponse, autrement dit si sa valeur dpasse 2n

    . Lindicateur de dpassement (overflow) concerne quant lui uniquement les

    nombres signs. Il passe 1 si pour une somme de deux nombres de mme signe, lecalcul donne un nombre de signe diffrent.NB. Laddition de deux nombres de signes diffrents correspond une soustraction.La valeur absolue du rsultat est donc moindre que celle dau moins un des deuxnombres de dpart. On peut donc tre certain que le rsultat ne sortira pas des limitesallant de -2n-1 +2n-1-1 ( -3768 +32.767 si n= 16 bits)

    Dans lessai que nous avons fait, les deux nombres 1234et 5678pouvaient aussi bientre signs que non signs.

    Sils sont non signs, cest lindicateur de report quil faut vrifier. Ici laddition1234 + 5678 ne donne aucun report, la rponse 67AC tient parfaitement sur 16bits. Cest ce que confirme lindication NC = "no carry"

    Dans le cas o les deux nombres additionns sont signs, 1234et 5678sont tousdeux positifs puisque le bit de signe = 0. Le rsultat est lui aussi positif, cest ce queconfirme lindication NV = "no overflow"

    Lors dune addition, le processeur value donc le rsultat la fois pour des nombressigns ou non signs. Cest au programmeur de lapplication de savoir si les variablesquil a dclares sont signes ou non, en fonction de quoi il vrifie aprs chaque opration

    soit le flag de dpassement (nombres signs) soit celui de report (nombres non signs).

    7.5 Exemples de calculs

    Exemple 1Imaginez les calculs suivants faits sur des nombre de 16 bits ( 2 octets)

    1 Si ces nombres sont non signs

    FFFF(16)= 65.535(10) 0001(16)= 1(10) La rponse de la machine est 0000Pourtant, la somme 65.535 + 1 = 65.536 et non pas 0 !

    Lerreur signale par lindicateur de report (carry) provient du fait que le rsultatdpasse la valeur maximale qui puisse tre crite avec 16 bits : 65.536(10)= 1 0000(16)

    2 Si ces nombres sont signs

    FFFF(16)= )1 0001(16)= +1 0000(16)= 0(10)

    La somme (-1) + (+1) = 0 Cest bien le rsultat obtenu.

    Il ny a pas derreur, cest ce que confirme lindicateur Overflow= 0, il ny a pas dedpassement.

    FFFF

    + 0001

    10000

    Carry = 1 il y a un report qui sort des 16 bitsOverflow = 0 car les deux nombres additionner sont de

    signes diffrents.

  • 7/23/2019 Math_Info

    27/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 26

    Exemple 2

    1 Si ces nombres sont non signs :

    8012(16)= 32768(10) F091(16)= 61585(10) 70A3(16)= 28.835(10)

    Pourtant, la somme 32.768 + 61.585 = 91.353 et non pas 28.835 !

    Lerreur signale par le bit de report (carry) provient du fait que le rsultat dpasse lavaleur maximale qui puisse tre crite avec 16 bits : 91.353 > 65.536

    ou 170A3(16)> 10000(16)

    Pour pouvoir additionner de telles valeurs il faut utiliser des nombres de 32 bits.

    2 Si ces nombres sont signs :

    8012(16)= -32.750(10) F091(16)= -3951(10) 70A3(16)= 28.835(10)

    La somme ( -32.750) + ( -3.951) = -36.737 et non pas 28.835 !

    Lerreur signale par lindicateur de dpassement (overflow) elle est due au fait que-36.737 < 32.768 (-215) limite infrieure des nombres signs en 16 bits.

    Pour pouvoir additionner de telles valeurs il faut utiliser des nombres de 32 bits.

    Exemple 3

    1 Si ces nombres sont non signs :

    51A4(16)= 20.900(10) 620C(16)= 25.100(10) B3B0(16)= 46.000(10)

    La somme 20.900 + 25.100 = 46.000Le rsultat est correct, cest ce que confirme lindicateur de carry = 0.

    Ce calcul tait possible en codant ces nombres non signs sur 16 bits. En effet lersultat de la somme ne dpasse pas 216-1 soit 65.535.

    2 Si ces nombres sont signs :

    51A4(16)= +20.900 620C(16)= +25.100 B3B0(16)= -19.536(10)

    La somme (+20.900) + (+25.100) = +46.000 et non pas -19.536 !

    Lerreur signale par lindicateur de dpassement (overflow) provient du fait que46.000 est plus grand que 32.767, le plus grand nombre sign de 16 bits (215-1)Pour viter ce dpassement, ces nombres signs auraient dus tre cods sur plus de 16bits, sur 32 bits par exemple.

    8012

    + F091

    170A3

    Carry = 1 il y a un report qui sort des 16 bitsOverflow = 1 nombres additionner tous deux ngatifs

    mais le rsultat est positif !

    51A4

    + 620C

    B3B0

    Carry = 0 il ny a pas de reportOverflow = 1 les nombres additionner sont positifs

    mais le rsultat est ngatif.

  • 7/23/2019 Math_Info

    28/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 27

    Exemple 4

    1 Si ces nombres sont non signs :

    241C(16)= 9.244(10) 30A5(16)= 12.453(10) 54C1(16)= 21.697(10)

    La somme 9.244(10)+ 12.453(10)= 21.697(10)

    Le rsultat est correct, ce que confirme le bit de report (carry) qui est 0.

    2 Si ces nombres sont signs :

    241C(16)= +9.244(10) 30A5(16)= +12.453(10) 54C1(16)= +21.697(10)

    La somme (+9.244) + (+12.453) = + 21.697Le rsultat est correct, en effet le bit de dpassement (overflow) est 0

    EXERCICES

    1. Les nombres signs suivants peuvent-ils tre encods sur un octet seulement ?Rpondez par oui ou par non puis justifiez votre rponse.

    240(10)

    100(10)

    -130(10)255(10)

    2. Les nombres signs suivants peuvent-ils tre encods sur un octet seulement ?Si oui crivez cette valeur ( en binaire ou en hexa) avec un seul byte.

    16 bits 8 bits

    0000 0000 0011 1011 (2)

    1111 1111 1011 0110 (2)

    0000 0000 1000 0101 (2)

    1111 1111 0111 0011 (2)

    FF82 (16)

    0426 (16)

    FF6A (16)

    F0C4 (16)

    241C

    + 30A5

    54C1

    Carry = 0 il ny a pas de reportOverflow = 0 les nombre additionner sont positifs

    le rsultat aussi.

  • 7/23/2019 Math_Info

    29/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 28

    3. Les nombres suivants sont donns en hexadcimal. A quelles valeurs dcimales cesnombres correspondent-ils selon quils sont signs ou non ?

    Code hexadcimal Valeur en base 10

    Si les nombres sont signs Sils sont non signs

    EO

    63

    7F

    80

    81

    40

    D8

    14

    C0

    4. Faites les calculs suivants. (Tous les nombres sont donns en hexadcimal)A votre avis, selon que ces codes reprsentent des nombres signs ou non, ces calculssont-il exacts sils sont faits sur 8 bits uniquement ?

    Que vaudraient dans chacun des cas les indicateurs de report et de dpassement ?

    a) 40 + 14 =

    b) 80 + 7F =

    c) D8 + C0 =

    d) 40 + E0 =

    e) C0 + 63 =

    f) FF 20 =

  • 7/23/2019 Math_Info

    30/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 29

    8 Codage des nombres rels

    8.1 Utilit de la virgule flottante

    - Imaginez un systme de mesure digital qui indique des dimensions en millimtres avec une

    prcision de trois chiffres derrire la virgule. Faut-il pour cela que le processeur de cedispositif sache traiter des nombres en virgule flottante ? Non, des nombres entiersconviennent, il suffit de mesurer les dimensions en micromtres et la prcision est la mme.Si vraiment vous tenez aux mesures en mm, il suffit dafficher ou dimaginer une virgule entroisime position. 12.345 m 12,345 mm

    On parle dans ce cas de la notation en virgule fixe . Les mthodes de calculs en virgulefixe sont identiques celles que nous avons vues pour les nombres entiers et sont trs rapides.

    - Imaginons prsent que notre systme doive effectuer des calculs sur les valeurs mesures.Nous savons que ltendue des grandeurs reprsentables par des nombres entiers dpend dunombre de bits utiliss :

    8 bits 25616 6553632 4 109(4 x 1024 x 1024 x 1024 exactement)64 bits 16 1018 (16 x 10246exactement)

    Lors des calculs, il arrive que des dpassements provoquent des erreurs.

    Supposez par exemple que lon doive calculer 1500 x 2000 / 4000 avec des entiers de 16 bits.Les nombres 1500, 2000 et 4000 peuvent parfaitement tre cods en 16 bits puisquils sonttous trois infrieurs 216 1 = 65.535Si cependant la machine commence par calculer 1500 x 2000, le rsultat intermdiaire

    3.000.000 dpasse 65.353, les bits de poids forts du rsultat sont ignors et la rponse estfausse : 1500(10)x 2000(10)= 5DC(16)x 7D0(16)= 2CC6C0(16)En ne lisant que les 16 bits cela donne : C6C0(16)= 50.880(10)cest bien moins qu 3.000.000 !Si, pour ne pas dpasser cette limite vers le haut, on commence par calculer 2000/4000, ladivision entire donne 0 ce qui ne vaut guerre mieux !

    Le problme vient du fait que les nombres entiers (ou en virgules fixe) ne permettent que lareprsentation dune tendue limite de nombres.

    La solution consiste accrotre cette tendue en distinguant dune part les chiffressignificatifs et dautre part les ordres de grandeur comme nous le faisons en notationscientifique. Le calcul 1,5 . 103x2 . 103se fait ds lors en deux tapes, le calcul des chiffressignificatifs dune part 1,5 x2 = 6 et les ordres de grandeurs 103 x103 = 106 dautre part. Cescalculs 1,5x 2 et 3+3 (la somme des exposants de 10) portent sur de petits nombres.

    La reprsentation, dite en virgule flottante permet une plus grande disparit des ordres degrandeur quen virgule fixe. On peut grce aux nombres flottants crire la fois desnombres trs grands (suivis dun grand nombre de zros) et des fractions trs petites (prcdsdun grand nombre de zro).

    Cest en quelque sorte une technique de compression de lcriture des nombres : au lieudcrire tous les 0 on en indique simplement leur nombre. Cest par rapport aux nombresentiers, une compression o lon ignore les dtails. Ainsi, ce nest pas parce quil est permisdcrire 1038que le systme est capable de compter 1 1 depuis 0 jusque 10 38

    Rappelons en guise de prparation comment nous crivons les nombres rels en dcimal.

  • 7/23/2019 Math_Info

    31/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 30

    8.2 Notation scientifique

    Voici comment crire un nombre en notation scientifique :1 placer la virgule juste aprs le premier chiffre significatif2 multiplier ce nombre par la puissance de 10 qui convient.

    Exemple : 204.875 = 2,04875 105

    ou 0,0273 = 2,73 10-2

    Lexposant donn 10 compense lopration faite en dplaant la virgule.Chaque dplacement de la virgule vers la gauche diviserait le nombre par 10, il doit donc trecontrebalanc en ajoutant 1 lexposant de 10.Inversement, chaque dplacement de la virgule vers la droite multiplierait le nombre par 10sil ntait pas compens en retranchant 1 de lexposant de 10.

    Exercices

    Ecrire en notation scientifique9364,88 381,25 0,000356 0,0356 0,554 0,0003

    Transformer en notation dcimale2,7654 1064,42 10-1 6,05 104 3,02 10-2 1,25 109 1,5 10-5

    8.3 Nombres fractionnaires binaires

    o En dcimal, les chiffres placs derrire la virgule, reprsentent des diximes, descentimes, des millimes et ainsi de suite.Le nimechiffre derrire la virgule a pour poids 10-n.

    o En binaire, les principes de numration de positions sont les mme. Les chiffres derrire lavirgule reprsentent cette fois des demis, des quarts, des huitimes etc. Le n ime chiffrederrire la virgule pour poids 2-n.

    Binaire Dcimal0,1 = 0,50,01 = 0,250,001 = 0,1250,0001 = 0,06250,00001 = 0,031250,000001 = 0,015625

    Remarques :o Les dcimales en base dix ne permettent une reprsentation finie des nombres

    rationnels que si ceux-ci peuvent scrire sous la forme10nN

    Cest la cas pour la valeur de un quart : 1/4 = 25/10 = 0,25ou pour un cinquime : 1/5 = 2/10 = 0,2mais pas pour un tiers 1/3 = 0,333.333.333.333.333.333.333.333.333.... !

    o De mme, en binaire, les nombres rels et rationnels nauront une reprsentation finie que

    sils peuvent tre crits sous la forme2nN

    Cest la cas pour un demi : 1/10(2)= 0,1(2)ou pour un quart : 1/100(2)= 1/100(2)= 0,01(2)mais pas pour un tiers : 1/11 = 0,0101 0101010101010101 0101 0101.ni pour un cinquime : 1/101 = 0,0110 01100110011001100110

  • 7/23/2019 Math_Info

    32/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 31

    Conclusion : Puisque les nombres sont reprsents par des codes de dimensions finies, il esttrs souvent ncessaire dachever lcriture de ces codes par un arrondi. Lareprsentation des nombre rels par des nombres en virgule flottante nest biensouvent quapproximative.

    8.3.1 Conversion de nombre dcimaux fractionnaires en binaireIl est bien rare que lon doive faire ce genre de calcul. Nous ne le faisons qu titre decuriosit. Soit convertir 0,123 en binaire.

    0,123 = 0,123 x 1024 / 1024= 125,952 / 1024 126 / 1024111 1110(2)/ 10 0000 0000(2) 0,0001 1111 1

    ! Larrondi est invitable car 0,123 ne peut pas tre crit exactement sous la forme2nN

    Autre mthode : multiplications successives par 2

    0 , 6875 = valeur convertir1 , 3750 = 1/2 + 0,375 qui reste convertir0 , 750 = 0/4 + 0,7501 , 50 = 1/8 + 0,51 , 0 = 1/16 => Rsultat = 0,1011(2)

    8.3.2 Exercices

    Convertir en dcimal :

    1101,1(2) 11,01(2) 101,11(2) 1,0101(2)Convertir en binaire2,5 3,75 0,475 15,5625

    8.4 Nombres binaires en virgule flottante "Floating point"

    Le principe est le mme que celui de la notation scientifique. Le nombre est crit en deuxparties : les chiffres significatifs et un exposant donn la base pour faire varier la position dela virgule. La seule diffrence est quici nous sommes en binaire et non plus en dcimal. Leschiffres significatifs ainsi que lexposant sont cods en binaire. La base des exposants est labase 2.

    Cela revient crire les nombres sous la forme M . 2EM est la mantisse, E est lexposant

    La mantisse et lexposant se dterminent de la mme manire que pour crire en notationscientifique avec un seul chiffre significatif avant la virgule.

    Exemple crire en binaire sous la forme mantisse exposant les nombres binaires suivants :

    11,0111(2) = 1,10111(2)101 )2( 10010 / 100 = . . . .

    1000 = 1,0 . 103 111 / 1000 = . . . .

    0,00101 = 1,01 . 10-3 10101 x10000 = . . . .

  • 7/23/2019 Math_Info

    33/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 32

    8.5 Reprsentation en machine

    Tout comme les nombres entiers, les nombres flottants ont en machine une taille fixe lavance.La norme IEEE 754 a, pour garantir la portabilit des applications, dfini deux reprsentationsstandardises : les formats simples et double prcision, cods sur respectivement 32 et 64 bits.

    Chacun des ces formats comprend 3 champs :o un bit de signe (0=positif, 1 = ngatif),o quelques bits pour lexposanto les autres bits pour la mantisse.

    En ce qui concerne la mantisse, puisquon est en binaire, le premier chiffre significatif vautsystmatiquement 1. On peut donc ne pas crire ce bit pour gagner un bit de prcision en neconservant que la partie fractionnaire de la mantisse.

    Lexposant au lieu dtre un nombre sign a une reprsentation biaise. La valeur biaise est

    la valeur signe + 127 pour les rels simples ou + 1023 pour les rels doubles.N = (-1)sx(1+F) x2 (E- biais)

    En machine les rels simples sont cods sur 32 bits :1 bit pour le signe8 bits pour lexposant (biais = 127)23 bits pour la partie fractionnaire de la mantisse

    s e0 e1. . . . e7 f1f2 . . . . . . . . . . . f23

    Les rels doubles sont cods sur 64 bits1 pour le signe

    11 bits pour lexposant (biais = 1023)52 bits pour la partie fractionnaire de la mantisse

    s e0e1. . . . . . . . e10 f1f2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . f52

    Les conversions de dcimal binaire en virgule flottante sont dautant plus difficiles quelexposant est cheval sur plusieurs bytes. Voici un aperu de ce que a donne :

    Dcimal Hexa *simple prcision+ Hexa *dou"le prcision+

    -10+3 C4 7A 00 00 C0 8F 40 00 00 00 00 00-1 BF 80 00 00 BF F0 00 00 00 00 00 00

    - 10-3 B6 83 12 6F BF 50 62 4D D2 F1 A9 FC

    0 00 00 00 00 00 00 00 00 00 00 00 0010-6 35 86 37 BD 3E B0 C6 F7 A0 B5 ED 8D10-3 36 83 12 6F 3F 50 62 4D D2 F1 A9 FC0,5 3F 00 00 00 3F E0 00 00 00 00 00 001 3F 80 00 00 3F F0 00 00 00 00 00 002 40 00 00 00 40 00 00 00 00 00 00 003 40 40 00 00 40 08 00 00 00 00 00 005 40 A0 00 00 40 14 00 00 00 00 00 00

    10 41 20 00 00 40 24 00 00 00 00 00 00103 44 7A 00 00 40 8F 40 00 00 00 00 00

    10

    6

    49 74 24 00 41 2E84 80 00 00 00 00

    1012 57 68 D4 A5 48 6D 1A 94 A2 00 00 00

  • 7/23/2019 Math_Info

    34/52

  • 7/23/2019 Math_Info

    35/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 34

    Bien que ce type de calculs se fasse rarement la main, exerons nous tout de mme fairequelques conversions afin de bien saisir le mcanisme de ce codage.

    Conversions dcimal binaire

    1.0 = 1 x20 exposant 0 => sa valeur biaise = 0 +7F = 7F

    Signe Exposant Partie fractionnaire de la mantisse

    0011 1111 1000 0000 0000 0000 0000 0000

    3 F 8 0 0 0 0 0

    -0.5 = -1 x2-1 exposant -1 => valeur biaise = FF +7F = 17E

    Signe Exposant Partie fractionnaire de la mantisse

    1011 1111 0000 0000 0000 0000 0000 0000

    B F 0 0 0 0 0 0

    Conversions binaire dcimal

    40 40 00 00

    Signe Exposant Partie fractionnaire de la mantisse

    0100 0000 0100 0000 0000 0000 0000 0000

    4 0 4 0 0 0 0 0

    Signe : 0 =+Valeur biaise de lexposant = 1000 0000 = 128Exposant = 128-127 = 1Partie fractionnaire de la mantisse : 0,10000000=> Mantisse = 1,1Rsultat : N = + 21x 1,1(2)= 3

  • 7/23/2019 Math_Info

    36/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 35

    9 Les fonctions logiques

    La logique est une forme dopration de la pense qui nous permet de raisonner. Cest parexemple la dmarche qui vous permettrait de rsoudre lnigme suivante :

    Un homme regarde un portrait et dit : Je nai ni frre ni sur mais le pre de cet homme estle fils de mon pre . Qui est reprsent sur le portrait ?

    Les questions de logique sont parfois moins nigmatiques. :

    Sil fait beau ce soir et si jai fini ma prparation, jirai me promener.

    Nous tenterons de les ramener des choix simples o les affirmations sont soit vraies soit

    fausses, les rponses aux questions sont oui ou non, il ny a pas de valeurs intermdiaires.

    La promenade est lie deux conditions : la mto et le travail qui reste faire. Les

    diffrentes situations sont reprsentes dans ce quon appelle une table de vrit :

    Il fera beau Mon travail sera achev Jirai me promener

    Non Non NonNon Oui NonOui Non NonOui Oui Oui

    Essayez avec la proposition suivante :

    Laccus sera disculp si lenqute rvle quil sagit dun suicide ou sil peut faire la preuvequil tait ailleurs au moment des faits.

    Dans le premier cas, la promenade dpend de deux conditions qui doivent tre simultanes.Dans le second cas, une seule condition suffit pour disculper laccus.

    Bon nombre de chercheurs ont tent de trouver une manire infaillible de raisonner. GeorgeBoole traduisit les relations logiques en quations ce qui donna lalgbre boolenne. Il dfinitainsi les rgles qui permettent de faire des raisonnements valides pour autant que les variables logiques ne puissent avoir que deux valeurs possibles : Oui ou Non, Vrai oufaux, 1 ou 0. Ce doivent tre des variables binairesShannon (1916-2001), linventeur du mot bit , dmontra que lalgbre de Boole taitapplicable aux circuits lectriques. Cela permit cette poque dautomatiser les centrauxtlphoniques. Cette analogie est reprise ci-dessous pour matrialiser le fonctionnement des

    oprations logiques.

    Les fonctions logiques sont en informatique aussi courantes si pas plus que les oprationsarithmtiques. La logique combinatoire tout comme larithmtique repose sur quelquesoprations lmentaires.En arithmtique, ces oprations sont laddition, la soustraction, la multiplication et ladivision ( , , x, / ). Il est possible partir de l dimaginer toutes les autres oprationstelles que les exposants, les racines, les logarithmes etc.En logique, les oprations fondamentales sont le ET, le OUet le NON.

    La manire la plus simple de comprendre les fonctions logiques est de se les reprsenter pardes schmas lectriques qui comportent un ou plusieurs boutons poussoirs et une lampe. Cettelampe sallume condition que les contacts lectriques y laissent passer le courant.

  • 7/23/2019 Math_Info

    37/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 36

    Le schma ci-contre traduit la condition la plus simple :La lampe sallume si le bouton poussoir A est actionn.Autrement dit ( S = 1) si ( A = 1)

    Le fonctionnement de ce circuit sexprime par lquation logique

    Il ny a que deux cas possibles. Ils sont reprsents dans une table de vrit # ,Une table de vrit a pour le rle de montrer la correspondance entre la sortie ( (et toutes les combinaisons de valeurs que peuvent prendre la ou les entres. & &

    Plaons maintenant deux contacts dans le circuit. La condition ncessaire pour allumer lalampe dpend de la manire dont les contacts sont connects. Suivant les cas, la conditionpour allumer la lampe fait appel aux oprateurs logiques ET ou OU.

    9.1 La fonction ETLa lampe sallume si on active simultanmentles contacts A et B

    (S = 1) si (A = 1) ET (B = 1)

    Tables de vrits

    Equation logique de la fonction ET

    Le point reprsente loprateur ET.Ce signe convient parfaitement puisque la fonction ET donne le mme rsultat quunemultiplication.

    9.2 La fonction OU

    La lampe sallume si on active le contact A ou lecontact B

    (S = 1 ) si ( A = 1) OU ( B = 1)

    Tables de vrits

    # B # et B

    ( ( (( & (

    & ( (& & &

    # B # ou B

    ( ( (( & && ( &

    & & &

  • 7/23/2019 Math_Info

    38/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 37

    Equation logique de la fonction OU

    Loprateur OU est reprsent par un signe plus surmont dun point. Observons les troispremires ligne de la table de vrit, le rsultat de lopration OU y est semblable au rsultat

    dune addition.Le rsultat de 1 ou 1 diffre cependant de 1+1. Nous mettons un point au-dessus du signe +pour indiquer que lopration nest pas identique laddition.

    9.3 La fonction NON

    Les contacts que nous avons utiliss jusquici, sont des contacts normalement ouverts .Quand le bouton poussoir est relch (quand A = 0) le courant ne passe pas.Nous utilisons maintenant un contact normalement ferm pour illustrer la fonction NON.Le courant traverse le bouton poussoir quand il est relch mais le courant se coupe quand onactionne le contact (quand A = 1).

    Lire S = non A

    Table de vrit# -on #( && (

    9.4 Combinaisons de fonctions logiques

    Les trois fonctions de base que nous venons de voir se combinent de multiples faons.

    A chaque schma imaginable correspond une quation. La correspondance entre un schma etune fonction logique est systmatique :- Des contacts en parallle correspondent la fonction OU- Des contacts en srie correspondent la fonction ET- Un contact normalement ferm reprsente la fonction NON

    Exemples :

    # B . ,

    ( ( ( (( ( & (

    ( & ( (( & & (& ( ( (& ( & && & ( && & & &

  • 7/23/2019 Math_Info

    39/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 38

    # B . ,

    ( ( ( &( ( & (( & ( &

    ( & & (& ( ( && ( & (& & ( && & & &

    Tout comme en algbre la mme variable peut apparatre plusieurs fois dans une mmequation. Cest le cas dans lexemple suivant :Quand A vaut 1 dans le premier terme, soncomplment vaut simultanment 0 dans le

    second.# B . ,

    ( ( ( (

    ( ( & &( & ( (( & & && ( ( (& ( & (& & ( && & & &

    9.5 Proprits des fonctions logiques

    OR

    ET

    Distributivit

    OU exclusifSi A B = C alors A C = B et B C = A

    Thorme de de Morgan

  • 7/23/2019 Math_Info

    40/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 39

    EXERCICES

    1. Donnez les quations logiques que reprsentent ces diagrammes.

    NB. Sachez retracer les tables de vrit pour chacun de ces diagrammes.

  • 7/23/2019 Math_Info

    41/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 40

    2. Dessinez les schmas qui correspondent aux quations logiques suivantes.Vous devez aussi savoir en tracer les tables de vrit.

    3. Donnez les quations logiques qui correspondent aux schmas suivants :

  • 7/23/2019 Math_Info

    42/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 41

    10 Les portes logiques

    10.1 Fonctions de base

    Nous avons jusquici utilis des boutons poussoirs et une lampe pour illustrer lefonctionnement des oprateurs logiques. En lectronique digitale, les oprations logiques sonteffectues par des portes logiques. Ce sont des circuits qui combinent les signaux logiquesprsents leurs entres sous forme de tensions. On aura par exemple 5V pour reprsenterltat logique 1 et 0V pour reprsenter ltat 0.

    Voici les symboles des trois fonctions de base.

    Symboles amricains Symboles internationaux

    AND

    OR

    NOT

    Le nombre dentres des fonctions AND et OR nest pas limit. Voici par exemple unereprsentation de ces portes avec trois entres :

  • 7/23/2019 Math_Info

    43/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 42

    10.2 Combinaisons de portes logiques.

    Ces trois fonctions logiques de base peuvent tre combines pour raliser des oprations pluslabores en interconnectant les entres et les sorties des portes logiques.

    10.2.1 La porte NAND ( Non ET)

    (Symbole amricain) (Symbole international)=NOT AND

    10.2.2 Porte NOR (Non OU)

    (Symbole amricain) (Symbole international)

    = NOT OR

    10.2.3 Porte XOR

    (Symbole amricain) (Symbole international)

    Porte XOR deux entres

    La fonction "OU Exclusif" est en principe d'une fonction de deux variables :

    S = A B

    La sortie est 1 si une seule des deux entres vaut 1, do son appellation Ou exclusif .

  • 7/23/2019 Math_Info

    44/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 43

    Porte XOR plusieurs entres

    Pour calculer le rsultat de S = A B C, on doit pouvoir faire d'abord l'opration entredeux termes, puis refaire un ou exclusif entre le rsultat obtenu et le troisime terme.

    Ce qui se traduit par S = ( A B)Cou par S = A ( B C)

    On constate que l'appellation "Ou exclusif" n'est plus aussi ben propos puisque avec troisvariables, le rsultat vaut 1 si une seule entre ou toutes les trois valent 1.

    # B . ,

    ( ( ( (( ( & &( & ( &( & & (& ( ( && ( & (

    & & ( (& & & &

    Le rsultat est en fin de compte un bit de parit. Il vaut 1 si le nombre d'entres 1 est impair.

    Linverse de la porte XOR 2 entres

    Voyons ce que donne la table de vrit si oninverse la sortie dune porte XOR :

    Le rsultat est vaut 1 si les deux entres sontidentiques.

    Cette porte teste donc lquivalence des deuxentres. Certains appellent cette fonctionlogique, "fonction quivalence", dautreslappelle "XNOR"

  • 7/23/2019 Math_Info

    45/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 44

    11 ChronogrammesNous avons vu diffrentes reprsentations des fonctions logiques :

    Les symboles des portes :

    (NB. Ces symboles dsignent les fonctions sansen illustrer ni les tats ni le fonctionnement)

    Les schmas lectriques :

    Les quations et lalgbre de BOOLE: S = A . B

    Les tables de vrit :

    Les diagrammes de VENN

    Il existe une autre reprsentation encore qui devrait vous aider vous familiariserencore plus avec les fonctions logique : le chronogramme.

    Un chronogrammeest un diagramme temporel, il reprsente lvolution des signauxlogiques au cours du temps.

    Exemple :

    Les lectroniciens utilisent les chronogrammes pour tudier le timing des signauxcomme nous le faisons pour ltude des indices de latence pour ltude du timing des

    RAM dynamiques http://www.courstechinfo.be/Hard/Memoire.html#TimingRAMExerons nous de suite avec des fonctions simples :

    # B # et B

    ( ( (

    ( & (& ( (& & &

  • 7/23/2019 Math_Info

    46/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 45

    Exercices :1 a) Tracer les chronogrammes des circuits suivants en tenant compte des signaux A et B

    b) Prouvez par lalgbre de Boole que

    2 a)

    b) Prouvez par lalgbre de Boole que

  • 7/23/2019 Math_Info

    47/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 46

    12 Circuits logiques

    12.1 Comparateur

    Le comparateur est un circuit qui compare deux mots de n bits. En sortie, un bit indique lersultat de la comparaison : 1 sil y a galit entre les deux codes prsents lentre,

    0 si ces codes sont diffrents.

    S = 1 sie1=i1et e2=i2et e3=i3

    12.2 Dcodeur

    Le dcodeur est un circuit qui possde n bits dentres et 2nbits en sortie. Parmi toutes cessorties une seule est active, son numro est form par les n bits en entre.Exemple : Dcodeur "1 parmi 4"

    e1 e0 s3 s2 s1 s00 0 0 0 0 10 1 0 0 1 0

    1 0 0 1 0 01 1 1 0 0 0

  • 7/23/2019 Math_Info

    48/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 47

    12.3 Multiplexeur

    Le multiplexage est une opration qui consiste utiliser un quipement unique pour traiterplusieurs signaux. Exemple : une ligne de transmission unique pour des signaux multiples. On

    parle alors de multiplexage temporel : De mmes intervalles de temps sont accordssuccessivement pour chacun des signaux transmettre.

    c1 c0 s0 0 e00 1 e11 0 e21 1 e3

    Le multiplexeur agit comme un "commutateur" qui transmet la sortie le signal dune entreslectionne par un code binaire1..

    12.4 DmultiplexeurCe circuit ralise la fonction inverse du multiplexeur. Il possde plusieurs sorties ( 2n) , unsignal en entre et n bits pour dsigner la sortie vers laquelle sera aiguill le signal dentre.

    c1 c0 s3 s2 s1 s00 0 0 0 0 e0 1 0 0 e 0

    1 0 0 e 0 01 1 e 0 0 0

    1Cest ce genre de circuit quil y a pour ladressage des colonnes dune RAM dynamique en mode lecture.

  • 7/23/2019 Math_Info

    49/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 48

    12.5 Le demi additionneur half adder Addition de 2 bits = circuit 2 entres

    1 bit + 1 bit

    S = ABest la somme

    R = A . Best le report

    Le demi-additionneur effectue la somme de deux bits. Sest la somme et Rle report. (carry)Ce schma ne convient cependant que pour additionner 2 nombres de 1 bit.

    0 1 0 1

    +0 +0 +1 +100 01 01 10

    12.6 Le plein additionneur full adder

    Pour additionner de deux nombres de plusieurs bits il faut mettre en cascade des additionneursqui additionnent les bits correspondant des deux nombres plus les reports R i-1 issus desadditions des bits prcdents.

    Exemple : Calculons 1 + 3En binaire cela donne : 0001 + 0011

    Laddition des bits de droite est une addition de deux bits,elle peut tre ralise avec le demi additionneurIl faut tenir compte dun ventuel report pour les bits suivants.Ainsi ds le deuxime bit de notre exemple (en comptant les bits de droite gauche) ila fallu faire 2 additions ( 1+ 0 + 1 = 10on pose 0et on reporte 1)

    Table de vrit du circuit plein additionneur

    Cette table de vrit comporte 3 entres : Rn-1(le report de laddition prcdente), A et B

    Il lui faut deux sorties : S = la somme de 3 bits (A + B + Rn-1)R = le nouveau report

    Ri-1 A B S R

    0 0 0 0 0

    0 0 1 1 0

    0 1 0 1 0

    0 1 1 1 0

    1 0 0 1 0

    1 0 1 0 1

    1 1 0 0 1

    1 1 1 1 1

    Equations du circuit

    Si= Ai BiRi-1

    0 1 1

    0 0 0 1

    + 0 0 1 1

    0 1 0 0

  • 7/23/2019 Math_Info

    50/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 49

    Ri= ( Ai. Bi) Ri-1. ( Ai Bi)

    Schma du circuit plein additionneur

    Si= Ai BiRi-1Ri= ( Ai. Bi) Ri-1. ( Ai Bi)

    Le plein additionneur est un circuit 3 entres. Il se compose de 2 demi additionneurs etdune porte OU qui gnre le report quand la somme vaut 2 ou 3

    12.7 Addition de deux nombres de n bits

    Exemple : Mise en cascade de 4 additionneurs pour laddition de deux nombres de 4 bitsLe circuit peut tenir compte de lventuel report prcdent R -1Le report R3= 1 ds que lcriture de la somme ncessite plus de 4 bits

  • 7/23/2019 Math_Info

    51/52

    Luc De Mey www.courstechinfo.be/Math_Info.pdf 50

    EXERCICES

    1 La table de vrit ci-contre reprsente lestats dun circuit 3 entres (A, B et C)et 2 sorties (S0et S1)

    Observez les tats des sorties S1 et S0et donnez-en les quations

    Dessinez le montage de portes logiquespour raliser ces fonctions.

    A B C S1 S0

    0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

    2 Quelles sont les fonctions des circuits suivants :

    3 Montrez que ce circuit est un demi-additionneur

    4 Le code binaire rflchi encore appel "code Gray" est tel que dune valeur la suivante ilny a jamais quun seul bit qui change. La correspondance entre code binaire naturel de 3bits et code binaire rflchi est donne par la table suivante :

    Binairenaturel

    Binairerflchi

    C B A Z Y X0 0 0 0 0 00 0 1 0 0 10 1 0 0 1 10 1 1 0 1 01 0 0 1 1 01 0 1 1 1 11 1 0 1 0 11 1 1 1 0 0

    1 Ecrivez les quations de X, Y et Z enfonction de A, B et C

    2 Dessiner les circuits qui pourraient fairece dcodage laide de portes OR, ANDet/ou XOR

  • 7/23/2019 Math_Info

    52/52

    Annexe A Changements de bases pour nombres de 8 bits

    Conversions BinaireHexadcimalDcimal -om"res non signs

    00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0

    0000 0 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240

    0001 1 0 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241

    0010 2 2 18 34 50 66 82 98 114 130 146 162 178 194 210 226 242

    0011 3 3 19 35 51 67 83 99 115 131 147 163 179 195 211 227 243

    0100 4 4 20 36 52 68 84 100 116 132 148 164 180 196 212 228 244

    0101 5 5 21 37 53 69 85 101 117 133 149 165 181 197 213 229 245

    0110 6 6 22 38 54 70 86 102 118 134 150 166 182 198 214 230 246

    0111 7 7 23 39 55 71 87 103 119 135 151 167 183 199 215 231 247

    1000 8 8 24 40 56 72 88 104 120 136 152 168 184 200 216 232 2481001 9 9 25 41 57 73 89 105 121 137 153 169 185 201 217 233 249

    1010 A 10 26 42 58 74 90 106 122 138 154 170 186 202 218 234 250

    1011 B 11 27 43 59 75 91 107 123 139 155 171 187 203 219 235 251

    1100 C 12 28 44 60 76 92 108 124 140 156 172 188 204 220 236 252

    1101 D 13 29 45 61 77 93 109 125 141 157 173 189 205 221 237 253

    1110 E 14 30 46 62 78 94 110 126 142 158 174 190 206 222 238 254

    1111 F 15 31 47 63 79 95 111 127 143 159 175 191 207 223 239 255

    Conversions HexadcimalDcimal -om"res signs

    00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 F0

    0 0 16 32 48 64 80 96 112 -128 -112 -96 -80 -64 -48 -32 -16

    1 0 17 33 49 65 81 97 113 -127 -111 -95 -79 -63 -47 -31 -15

    2 2 18 34 50 66 82 98 114 -126 -110 -94 -78 -62 -46 -30 -14

    3 3 19 35 51 67 83 99 115 -125 -109 -93 -77 -61 -45 -29 -13

    4 4 20 36 52 68 84 100 116 -124 -108 -92 -76 -60 -44 -28 -12

    5 5 21 37 53 69 85 101 117 -123 -107 -91 -75 -59 -43 -27 -11

    6 6 22 38 54 70 86 102 118 -122 -106 -90 -74 -58 -42 -26 -10

    7 7 23 39 55 71 87 103 119 -121 -105 -89 -73 -57 -41 -25 -9

    8 8 24 40 56 72 88 104 120 -120 -104 -88 -72 -56 -40 -24 -8

    9 9 25 41 57 73 89 105 121 -119 -103 -87 -71 -55 -39 -23 -7

    A 10 26 42 58 74 90 106 122 -118 -102 -86 -70 -54 -38 -22 -6

    B 11 27 43 59 75 91 107 123 -117 -101 -85 -69 -53 -37 -21 -5

    C 12 28 44 60 76 92 108 124 -116 -100 -84 -68 -52 -36 -20 -4

    D 13 29 45 61 77 93 109 125 -115 -99 -83 -67 -51 -35 -19 -3

    E 14 30 46 62 78 94 110 126 -114 -98 -82 -66 -50 -34 -18 -2