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
Recommended