Objectifs. Circuits Logiques. Les nombres en binaire. Les nombres en binaire ( ) Connaître et comprendre. Être capable de

Documents pareils
Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Les opérations binaires

Conversion d un entier. Méthode par soustraction

Représentation des Nombres

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Codage d information. Codage d information : -Définition-

V- Manipulations de nombres en binaire

Logiciel de Base. I. Représentation des nombres

Représentation d un entier en base b

GPA770 Microélectronique appliquée Exercices série A

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Rappels Entrées -Sorties

IFT2880 Organisation des ordinateurs et systèmes

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Cours Informatique 1. Monsieur SADOUNI Salheddine

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Architecture de l ordinateur

Système binaire. Algèbre booléenne

Une version javascript sera disponible directement dans le cours prochainement.

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Informatique Générale

Mathématiques appliquées à l informatique

Chapitre 10 Arithmétique réelle

Glossaire des nombres

ALGORITHMIQUE ET PROGRAMMATION En C

Concevoir son microprocesseur

Algorithme. Table des matières

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

TP 1 : 1 Calculs en binaire, octal et hexadécimal

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Puissances d un nombre relatif

a) b)


Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

QUESTION 1 {2 points}

Algèbre binaire et Circuits logiques ( )

Architecture des ordinateurs Introduction à l informatique

Introduction à l étude des Corps Finis

IV- Comment fonctionne un ordinateur?

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

INF 321 : mémento de la syntaxe de Java


ASR1 TD7 : Un microprocesseur RISC 16 bits

Continuité et dérivabilité d une fonction

Représentation d un nombre en machine, erreurs d arrondis

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Microprocesseur + Logiciel

Licence Sciences et Technologies Examen janvier 2010

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Programmation C. Apprendre à développer des programmes simples dans le langage C

MATHÉMATIQUES FINANCIÈRES

STAGE IREM 0- Premiers pas en Python

Polynômes à plusieurs variables. Résultant

Initiation à la programmation en Python

ANALYSE TRAMEs LIAISON SERIE

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

ReadCard Guide Utilisateur

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

Chapitre 1 I:\ Soyez courageux!

Cours d Informatique

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Exemple d implantation de fonction mathématique sur ST240

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

VIII- Circuits séquentiels. Mémoires

IFT1215 Introduction aux systèmes informatiques

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Cours Premier semestre

Priorités de calcul :

Systemesdigitaux. Cours 5

Manuel de référence du langage Exemples Les aventures de Docteur R.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Exercices - Polynômes : corrigé. Opérations sur les polynômes

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Cours d initiation à la programmation en C++ Johann Cuenin

Le chiffre est le signe, le nombre est la valeur.

Architecture : Circuits numériques et éléments d architecture

Précision d un résultat et calculs d incertitudes

3 ème 2 DÉVELOPPEMENT FACTORISATIONS ET IDENTITÉS REMARQUABLES 1/5 1 - Développements

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

I- Définitions des signaux.

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Architecture Matérielle et Logicielle (LIF6) Cahier d'exercices, automne 2014

Architecture matérielle des systèmes informatiques

Programmation assembleur : aperçu

Organisation des Ordinateurs

Bases de programmation. Cours 5. Structurer les données

Architecture des Systèmes d Information Architecture des Systèmes d Information

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Introduction à l'informatique. Vincent Boyer et Jean Méhat

NOTIONS DE RESEAUX INFORMATIQUES

Le multiplexage. Sommaire

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Projet Matlab : un logiciel de cryptage

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Transcription:

Objectifs Circuits Logiques ELE1300 Représentation des nombres et opérations JP David Connaître et comprendre La représentation d un nombre dans une base quelconque et en particulier dans les formats binaires. Être capable de Convertir un nombre d une base à une autre Réaliser des opérations sur les nombres Addition soustraction multiplication division 2 Les nombres en binaire Les nombres en binaire ( ) Forme générale d un nombre : (système de numération pondérée) [ an 1 an 2 a1 a0, a 1 a 2 a m ] ( b ) [ an 1 an 2 a1 a0, a 1 a 2 a m ] ( b ) b b b b b b b n 1 n 2 1 0 1 2 m partie entière n chiffres partie fractionnaire m chiffres base Valeur : a b + a b + + a b + a n 1 n 2 n 1 n 2 1 0 + a b + a b + + a b -1-2 - m -1-2 - m 3 4

Quelques bases usitées Quelques bases usitées (suite) SYSTÈME BASE CHIFFRES { } BINAIRE 2 ai 0,1 OCTAL 8 ai { 0,1,2,3,4,5,6,7} DÉCIMAL 10 ai { 0,1,2,3,4,5,6,7,8,9} HEXADÉCIMAL 16 a { 0,1,2,3, 4,5,6,7,8,9,A,B,C,D,E,F } Exemples : i 3 2 1 0 1 2 3 1011,101( ) = 1( ) 10( ) + 0( ) 10( ) + 1( ) 10( ) + 1( ) 10( ) + 1( ) 10( ) + 0( ) 10( ) + 1( ) 10 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ( 2) 1 0 1 2 45,36( ) 4( ) 10( ) 5( ) 10( ) 3( ) 10 = + + ( ) + 6( ) 10 8 8 8 8 8 8 8 8 ( 8) 2 1 0 1 243,6( 10) = 2( 10) 10( 10) + 4( 10) 10( 10) + 3( 10) 10( 10) + 6( 10) 10 ( 10) 2 1 0 1 12A, 4( 16) = 1( 16) 10( 16) + 2( 16) 10( 16) + A( 16) 10( 16) + 4( 16) 10 ( 16) BINAIRE 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000 OCTAL 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 DÉCIMAL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 HEXADÉCIMAL 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 5 6 Compter en base Combien y a-t-il d autos? (voir cours 1 ) Une base est un paquet Compter en base 10, cela signifie qu on va faire des paquets de 10 objets : 7 8

49 = 4 paquets de 10 + 9 La base 2 Il y a 4 paquets + 9 autos, soit 49 autos 11 mars 2015 Circuits logiques - JP David Compter en base 2, cela signifie qu on va faire des paquets de 2 objets : 9 La base 2 (suite) 11 mars 2015 Circuits logiques - JP David 10 La base 2 (suite) Compter en base 2, cela signifie qu on va faire des paquets de 2 objets : Paquet de 2 Compter en base 2, cela signifie qu on va 2 paquets de 2 faire des paquets de 2 objets : autos 11 mars 2015 Circuits logiques - JP David 11 11 mars 2015 Circuits logiques - JP David 12

La base 2 (suite) Compter en base 2, cela signifie qu on va faire des paquets de 2 objets : Paquet de 4 autos La base 2 (suite) Compter en base 2, cela signifie qu on va faire des paquets de 2 objets : 13 14 La base 2 (suite) La base 2 (suite) Paquet de 8 autos 15 16

La base 2 (suite) La base 2 (suite) Paquet de 16 autos 17 18 La base 2 (suite) Paquet de 32 autos La base 2 (suite) = 2 x = 2 x = 2 x 32 16 8 4 2 19 1 1 0 0 0 1 20

Les nombres en binaire ( ) Convertion entre les bases Compter en base 10, cela signifie qu on va faire des paquets de 10 objets ou des paquets de 10 paquets 51 = 5 x 10 + 1 163 = 1 x (10x10) + 6 x 10 + 3 1964 = 1 x (10x10x10) + 9 x (10x10) + 6 x 10 + 4 Compter en base 2, cela signifie qu on va faire des paquets de 2 objets ou des paquets de 2 paquets 51 = 1 x (2x2x2x2x2) + 1 x (2x2x2x2) + 1 x 2 + 1 163 = 1 x (2 7 =128) + 1 x (2 5 =32) + 1 x 2 + 1 1964 = 1 x (2 10 =1024) + 1 x (2 9 =512) + (1 x 2 8 =256) + 1 x (2 7 =128) + 1 x (2 5 =32) + 1 x (2 3 =8) + 1 x (2 2 =4) Conversion d une base quelconque en base décimale : MÉTHODE POLYNOMIALE DIRECTE Développer le polynôme et faire le calcul Exemples : binaire en décimal 01011 (2) = 1 2 3 + 1 2 1 +1 2 0 = 8+2+1=11 en base 10 11001 (2) = 1 2 4 + 1 2 3 +1 2 0 = 16+8+1=25 en base 10 011111 (2) =? (10) 1000001 (2) =? (10) 1000,001 (2) =? (10) 011,111 (2) =? (10) 21 22 Conversion entre les bases ( ) Conversion d une base quelconque en base décimale : MÉTHODE POLYNOMIALE ITÉRATIVE Pour la partie entière (E) E = a b + + a b + a b + a b n 1 2 1 0 n 1 2 1 0 E = ((((0 + a ) b + a ) b + + a ) b + a ) b + a n 1 n 2 2 1 0 Conversion entre les bases ( ) Conversion d une base quelconque en base décimale : MÉTHODE POLYNOMIALE ITÉRATIVE Pour la partie fractionnaire (F) F = a b + a b + a b + + a b 1 2 3 m 1 2 3 m F = ((((0 + a ) b + a ) b + + a ) b + a ) b 1 1 1 1 m ( m 1) 2 1 01011 (2) = (((1) 2+0) 2+1) 2+1 = 11 (10) 11001 (2) = ((((1) 2+1) 2+0) 2+0) 2+1 =25 (10) 0.1011 (2) = ((((1) ½+1) ½+0) ½+1) ½ = 0.6875 (10) 0.10111 (2) = (((((1) 2+1) 2+1) 2+0) 2+1) ½ = 0.71875 (10) 23 24

Conversion entre les bases ( ) Conversion d une base décimale en base quelconque : MÉTHODE ITÉRATIVE PAR DIVISION Le calcul se fait différemment pour la partie entière et la partie fractionnaire : [ an 1 an 2 a1 a0, a 1 a 2 a m ] ( b ) Conversion entre les bases ( ) Conversion d une base décimale en base quelconque : MÉTHODE ITÉRATIVE PAR DIVISION Pour la partie entière (E) Partie entière : E = a b + + a b + a b + a b n 1 2 1 0 n 1 2 1 0 E n 2 1 0 a0 a0 = an 1 2 1 1 1 reste b b + + a b + a b + = Q + = Q a b b 0 partie entière n chiffres partie fractionnaire m chiffres base Q1 n 3 0 a1 a1 = an 1 2 2 2 reste b b + + a b + = Q + = Q a b b 1 Q2 n 4 0 a2 a2 = an 1 3 3 3 reste b b + + a b + = Q + = Q a b b 2 (le processus est appliqué jusqu à a n-1 ) 25 26 Conversion entre les bases ( ) Conversion entre les bases ( ) Exemple : 57 (10) =? (2) 57 2 = 28 reste 1 28 2 = 14 reste 0 14 2 = 7 reste 0 7 2 = 3 reste 1 3 2 = 1 reste 1 1 2 = 0 reste 1 Exemple : 637 (10) =? (2) 637 2 = 318 reste 1 318 2 = 159 reste 0 159 2 = 79 reste 1 79 2 = 39 reste 1 39 2 = 19 reste 1 19 2 = 9 reste 1 9 2 = 4 reste 1 4 2 = 2 reste 0 2 2 = 1 reste 0 1 2 = 0 reste 1 Conversion d une base décimale en base quelconque : MÉTHODE ITÉRATIVE PAR DIVISION Pour la partie fractionnaire (F) Partie fractionnaire : F = a b + a b + a b + + a b 1 2 3 m 1 2 3 m bf = a b + a b + a b + + a b 0 1 2 m + 1 1 2 3 m Partie entière Partie fractionnaire F 1 bf = a b + a b + a b + + a b 0 1 2 m + 2 1 2 3 4 m d où 57 (10) = 111001 (2) d où 637 (10) = 1001111101 (2) Partie entière Partie fractionnaire F 2 (le processus est appliqué jusqu à a -m ) 27 28

Conversion entre les bases ( ) Exemple : 0,6875 (10) =? (2) 0,6875 2 = 1,375 partie entière = 1 0,375 2 = 0,75 partie entière = 0 0,75 2 = 1,5 partie entière = 1 0,5 2 = 1,0 partie entière = 1 d où 0,6875 (10) = 0,1011 (2) Exemple : 0,8125 (10) =? (2) 0,8125 2 = 1,625 partie entière = 1 0,625 2 = 1,25 partie entière = 1 0,25 2 = 0,5 partie entière = 0 0,5 2 = 1,0 partie entière = 1 d où 0,8125 (10) = 0,1101 (2) Conversion entre les bases ( ) La répétition existe aussi en binaire : MÉTHODE ITÉRATIVE PAR DIVISION Exemple : 22/7 = 21/7 + 1/7 = 3+1/7 =? (2) RÉPÉTITION d où 22/7 = 11, 001 001 001 (2) 1/7 2 = 2/7 0,2857 partie entière = 0 2/7 2 = 4/7 0,5714 partie entière = 0 4/7 2 = 8/7 1,1428 partie entière = 1 1/7 2 = 2/7 0,2857 partie entière = 0 29 30 Et les nombres négatifs? Un ordinateur représente l information en 0 et en 1 (des bits). Pour représenter le signe moins ( - ), on a pas d autre choix que d utiliser un bit supplémentaire REPRÉSENTATION EN COMPLÉMENT À 2 Supposons que l on utilise 8 bits (n=8). On a 2 n =256 valeurs binaires (de 0 à 255). Pour réserver un bit de signe, on choisit PAR CONVENTION de répartir les valeurs possibles en deux groupes, 128 nombres positifs (0 à 127) et 128 nombres négatifs (-128 à -1). Remarque : 0 est considéré comme un positif Pour représenter les nombres négatifs on écrit: N sera 256 N -3 sera 256 3 = 253 = 11111101 (2) -128 sera 256 128 = 128 = 10000000 (2) Et les nombres négatifs? REPRÉSENTATION EN COMPLÉMENT À 2 Reprenons l écriture en binaire. Nous disposons de 8 bits (256 valeurs) partagés en 128 valeurs positives (0 à 127) et 128 valeurs négatives (-128 à -1). Les valeurs positives sont : 000 0000 0000 001 0000 0001 002 0000 0010 003 0000 0011 004 0000 0100...... 123 0111 1011 124 0111 1100 125 0111 1101 126 0111 1110 127 0111 1111 31 32

Et les nombres négatifs? Et les nombres négatifs? REPRÉSENTATION EN COMPLÉMENT À 2 REPRÉSENTATION EN COMPLÉMENT À 2 Les valeurs négatives sont : -001 1111 1111-002 1111 1110-003 1111 1101-004 1111 1100-005 1111 1011-006 1111 1010...... -122 1000 0110-123 1000 0101-124 1000 0100-125 1000 0011-126 1000 0010-127 1000 0001-128 1000 0000 Conclusions: Le bit le plus significatif (le plus à gauche, noté MSB) est un bit de signe Si le MSB vaut 0, le nombre est positif (sa valeur est la valeur binaire directe) Exemples: 001 0000 0001 050 0011 0010 100 0110 0100 127 0111 1111 Si le MSB vaut 1, le nombre est négatif (sa valeur est la valeur binaire 2 n ) Exemples: -001 1111 1111 (255-256 = -1) -050 1100 1110 (206-256 = -50) -100 1001 1100 (156-256 = -100) -127 1000 0001 (129-256 = -127) 33 34 Et les nombres négatifs? Et les nombres négatifs? REPRÉSENTATION EN COMPLÉMENT À 2 CALCUL DU COMPLÉMENT À 2 D UN NOMBRE Comme le bit de poids fort est toujours vrai pour un nombre négatif, en 8 bits, la valeur représentée est, 128 + valeur binaire sur 7 bits 256, soit : valeur binaire sur 7 bits 128 Tout se passe comme si la valeur du premier bit (a n-1 ) devait être comptée en négatif (-2 (n-1) = -128) plutôt qu en positif En généralisant à n bits, on peut donc trouver la valeur d un nombre binaire signé comme suit, en notant le signe MOINS devant la première puissance de 2: Pour trouver la valeur négative d un nombre de manière simple, on inverse les bits (complément à 1) et on ajoute 1: Exemples: 001 : 0000 0001 INVERSE 1111 1110 (+1) 1111 1111 : -001 050 : 0011 0010 INVERSE 1100 1101 (+1) 1100 1110 : -050 100 : 0110 0100 INVERSE 1001 1011 (+1) 1001 1100 : -100 [ n 1 n 2 1 0, 1 2 m ] ( b ) N = a a a a a a a 127 : 0111 1111 INVERSE 1000 0000 (+1) 1000 0001 : -127 N = a 2 + + a 2 + a 2 + a + a 2 + a 2 + a 2 + + a 2 n 1 2 1 1 2 3 m n 1 2 1 0 1 2 3 m 35 36

Et les nombres négatifs? CALCUL DU COMPLÉMENT (À 2) D UN NOMBRE Le chemin inverse est juste aussi, on inverse les bits (complément à 1) et on ajoute 1: Et les nombres négatifs? CALCUL EN REPRÉSENTATION EN COMPLÉMENT À 2 Le complément à 2 est cyclique: Exemple (4 bits allant de -8 à +7) : Exemples: -001 : 1111 1111 INVERSE 0000 0000 (+1) 0000 0001 : 001-050 : 1100 1110 INVERSE 0011 0001 (+1) 0011 0010 : 050-100 : 1001 1100 INVERSE 0110 0011 (+1) 0110 0100 : 100-127 : 1000 0001 INVERSE 0111 1110 (+1) 0111 1111 : 127 37 38 Et les nombres négatifs? Et les nombres négatifs? REPRÉSENTATION EN COMPLÉMENT À 2 Il est possible de choisir n importe quel nombre de bits. Pour n bit: N sera N pour N>=0 N sera 2 n N pour N<0 Exemples: Source xkcd n 571 1001 (2) =? (10) 1011 (2) =? (10) 0101 (2) =? (10) 11100 (2) =? (10) 11001 (2) =? (10) 00111 (2) =? (10) 1101111 (2) =? (10) 1101010 (2) =? (10) 0010110 (2) =? (10) 39 40

Et les nombres négatifs? REPRÉSENTATION EN COMPLÉMENT À 2 Pour n+m bit, qu est-ce que ça donne avec la partie en virgule fixe? Exemples: [ n 1 n 2 1 0, 1 2 m ] ( 2 ) N = a a a a a a a N sera N pour N>=0 N sera 2 n N pour N<0 L addition binaire : 207 + 120 128 64 32 16 8 4 2 1 10,01 (2) =? (10) 10,11 (2) =? (10) 01,01 (2) =? (10) 11,100 (2) =? (10) 11,001 (2) =? (10) 00,111 (2) =? (10) 41 1 0 1 0 0 0 1 1 1 42 Arithmétique signée Lorsqu on additionne ou que l on soustrait des nombres représentés en complément à 2, on choisit d abord un nombre de bits (n,m) qui sera le même pour les opérandes ET pour le résultat. Si nécessaire, on utilise l extension de signe pour les opérandes (voir plus loin). Arithmétique signée ADDITION ( ) Quel impact cela a-t-il sur le résultat? 0 0 1 1 0 1 1 0 + 0 0 0 0 1 1 1 1 0 1 0 0 0 1 0 1 54 + 15 69 Finalement, on réalise les opérations comme si on était en arithmétique positive mais on ignore le bit de retenue. 1 1 0 0 1 0 1 0 + 1 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 ( 54) + ( 15) ( 69) 43 44

Arithmétique signée SOUSTRACTION N 1 N 2 = N 1 + ( N 2 ) Arithmétique signée LE DÉBORDEMENT Quel impact cela a-t-il sur le résultat? 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 + 1 1 1 1 0 0 0 1 54 15 0 1 0 0 + 0 1 0 0 4 + 4 1 0 0 1 0 0 1 1 1 39 1 0 0 0 8 1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 + 0 0 0 0 1 1 1 1 ( 54) ( 15) Quel est le problème? 1 1 0 1 1 0 0 1 ( 39) 45 46 Un peu d arithmétique ( ) LE DÉBORDEMENT ( ) En complément à 2 avec 4 bits, il n y a pas de représentation de +8!!! Lorsque le résultat de l opération n est pas représentable, on parle de DÉBORDEMENT de l opération +/-. Un peu d arithmétique ( ) LE DÉBORDEMENT ( ) Le débordement survient uniquement quand on additionne deux nombres positifs ou deux nombres négatifs. Le débordement peut être facilement détecté, il survient lorsque les deux dernières retenues sont différentes 0 1 0 0 4 + 0 1 0 0 + 4 1 0 0 0 1 1 0 0 + 1 0 1 1 0 1 1 1 8 ( 4) + ( 5) 7 47 48

Un peu d arithmétique ( ) LE DÉBORDEMENT ( ) Pour éviter le débordement, il faut choisir un nombre bits plus grand. On procède alors à l extension signée des opérandes : Pour les nombres positifs, on met un ou plusieurs 0 devant Pour les nombres négatifs, on met un ou plusieurs 1 devant 0 1 0 0 + 0 1 0 0 1 0 0 0 1 0 0 + 1 0 1 1 0 1 1 1 0 0 1 0 0 + 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 + 1 1 0 1 1 1 0 1 1 1 Un peu d arithmétique ( ) LE DÉCALAGE Chaque décalage à droite correspond à une division par deux : 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0,1 1 0 1 0 1 1,0 1 1 0 1 0 1,1 0 1 1 0 1 0,1 1 0 1 1 0 1,0 1 1 0 1 1 0,1 0 1 1 0 1 173,000000 86,500000 43,250000 21,625000 10,812500 5,406250 2,703125 49 50 Un peu d arithmétique ( ) Un peu d arithmétique ( ) LE DÉCALAGE Chaque décalage à gauche correspond à une multiplication par deux : LA MULTIPLICATION Un exemple simple (entiers positifs non signés): 1 0,1 0 1 1 0 1 1 0 1,0 1 1 0 1 1 0 1 0,1 1 0 1 1 0 1 0 1,1 0 1 1 0 1 0 1 1,0 1 1 0 1 0 1 1 0,1 1 0 1 0 1 1 0 1 2,703125 5,406250 10,812500 21,625000 43,250000 86,500000 173,000000 1 1 0 1 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 13 6 1 0 0 1 1 1 0 78 51 52

Un peu d arithmétique ( ) LA MULTIPLICATION ( ) Quelques exemples Un peu d arithmétique ( ) LA DIVISION Un exemple simple (entiers positifs non signés): 1 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 0 78 6 = 1 1 0 0 1 1 1 0 0 1 = 0 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 0 donne 1 1 0 0 0 0 reste 0 13 donne reste = = 53 54 Un peu d arithmétique ( ) LA DIVISION Quelques exemples 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 1 0 0 Virgule fixe La représentation en virgule fixe signifie que l on fixe le nombre de bits de la partie fractionnaire Ex : 5 bits d entier + 3 bits après la virgule Pour les additions soustractions Aucun changement Pour les multiplications/divisions Ajuster la virgule et tronquer/arrondir 55 56

Exemples en virgule fixe L additionneur En virgule fixe 5.3 9.375 + 20.875 = 1/8 (75 + 167) 01001.011 (2) + 10100.111 (2) = 0.001 (2) (01001011 (2) + 10100111 (2) ) = 0.001 (2) (11110010 (2) ) = 11110.010 (2) 9.375 x 20.875 = (1/8) x 75 x (1/8) x 167 = (1/8) 2 x 75 x 167 01001.011 (2) X 10100.111 (2) = (0.001 (2) x 01001011 (2) ) x (0.001 (2) 10100111 (2) ) = 0.000001 (2) x (01001011 (2) 10100111 (2) ) = 0.000001 (2) (11000011101101 (2) ) = 11000011.101101 (2) (virgule fixe 10.6) Ce qui donnerait en format 5.3 : 00011.101 (2), on aurait donc un débordement Addition de deux bits (demi-additionneur binaire) A B S R 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 A B A et B : cumulande et cumulateur S : somme R : retenue S = A B R = AB S R 57 58 L additionneur L additionneur + rn 1 r3 r2 r1 a a a a a n 1 3 2 1 0 b b b b b n 1 3 2 1 0 Addition de deux nombres binaires : Additionneur binaire complet r a b s r + i i i i i 1 a i b i 00 01 11 10 0 0 1 0 1 r i 1 1 0 1 0 a n-1 b n-1 r s s s s s n r n-1 r 3 n 1 3 2 1 0 a 2 b 2 r n s n-1 Additionneur binaire s 2 s 1 11 mars 2015 complet Circuits logiques - JP David a 1 b 1 r 2 r 1 a 0 b 0 s 0 r 0 = 0 59 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 s = r a b + r a b + r a b + r a b i i i i i i i i i i i i i a i b i 00 01 11 10 0 0 0 1 0 r i 1 0 1 1 1 r = r a + + r b + a b i 1 i i i i i i 60

L additionneur L additionneur si = ri ai bi + ri ai bi + ri aibi + ri ai bi ( ) ( ) = r a b + a b + r a b + a b i i i i i i i i i i ( ) ( ) ( ) = r a b + r a b = r a b i i i i i i i i i a i b i si = ri ( ai bi ) r i r = r a + + r b + a b i 1 i i i i i i ( ) ou = r a b + a b + a b i i i i i i i ( ) = r a b + a b i i i i i r a b + r a b + a b i i i i i i i i a i b i 00 01 11 10 0 0 0 1 0 r i 1 0 1 1 1 ( ) r = r a + b + a b i 1 i i i i i Inconvénient : Délai de propagation des retenues 61 62 L additionneur L additionneur Circuit d anticipation des retenues («Carry Lookahead Network») Circuit d anticipation des retenues pour un additionneur à 4 bits (avec r 0 = 0) r 1 r = i 1 ri p + i gi où p = i a i bi (ou bien a + + i bi ) et g = i aibi g 0 p 1 g 1 r 2 r1 = r0 p0 + g0 ( ) r = r p + g = r p + g p + g = r p p + g p + g 2 1 1 1 0 0 0 1 1 0 0 1 0 1 1 ( ) r = r p + g = r p p + g p + g p + g = r p p p + g p p + g p + g 3 2 2 2 0 0 1 0 1 1 2 2 0 0 1 2 0 1 2 1 2 2 p 2 g 2 p 3 g 3 r 3 r = r p p p p + g p p p + g p p + g p p + n 0 0 1 2 n 1 0 1 2 n 1 1 2 n 1 2 3 n 1 + g p p p + g p p + g p + g n 4 n 3 n 2 n 1 n 3 n 2 n 1 n 2 n 1 n 1 r 4 63 64

L additionneur Additionneur à 4 bits (avec r 0 = 0) a 0 a 1 a 2 a 3 b b 0 b 1 2 b 3 s 0 s 1 Le soustracteur Arithmétique binaire : application du complément à deux Réalisation de la soustraction b n-1 [ a a a a a ] [ b b b b b ] n 1 n 2 2 1 0 n 1 n 2 2 1 0 b 2 b 1 b 0 s 2 a n-1 a 2 a 1 a 0 s 3 r n-1 r 3 r 2 r 1 r 0 = 1 g 0 p 1 g 1 p 2 g 2 p 3 g 3 Circuit d anticipation des retenues r 1 r 2 r 3 r 4 r 4 r n s n-1 s 2 s 1 s 0 65 66 L additionneur/soustracteur Unité arithmétique binaire avec commande de l opération 0, addition c = 1, soustraction Le comparateur a n-1 a 2 a 1 a 0 b n-1 b 2 b 1 b 0 b n-1 b 2 b 1 b 0 s E a n-1 a 2 a 1 a 0 COMPARATEUR s G r n-1 r 3 r 2 r 1 s P r 0 r n s n-1 d s 2 s 1 s 0 [ an 1an 2 a2a1 a0 ] [ bn 1bn 2 b2 b1 b0 ] [ 1 2 2 1 0 ] [ 1 2 2 1 0 ] [ a a a a a ] < [ b b b b b ] 100 si = se sg sp = 010 si an an a a a > bn bn b b b 001 si n 1 n 2 2 1 0 n 1 n 2 2 1 0 détection de débordement 67 68

Le comparateur Comparateur : réalisation avec des comparateurs à un bit Le comparateur a b E G P E G P i i i i i i+ 1 i+ 1 i+ 1 a 0 b 0 a i b i a n-1 b n-1 E 0 E 1 E i E i+1 E n-1 G 0 P 0 COMPARATEUR (UN BIT) G 1 P 1 Note : E 0 = 1 et G 0 = P 0 = 0 G i P i COMPARATEUR (UN BIT) G i+1 P i+1 G n-1 P n-1 COMPARATEUR (UN BIT) E n G n P n s E s G s P E i G i P i a i b i COMPARATEUR (UN BIT) E i+1 G i+1 P i+1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 ( Tous les autres cas sont facultatifs ) 69 70 Le comparateur Le comparateur ( ) ( ) ( ) E = a b E + a b E = a b + a b E = + a b E = a b E i 1 i i i i i i i i i i i i i i i i i a i b i G = b G + + a G + a b i 1 i i i i i i ( ) ( ) P = b P + + a P + a b i 1 i i i i i i ou ai bi Gi + aibi Gi + ai bi = a b + a b G + a b = a b G + a b i i i i i i i i i i i i ( ) ( ) ou ai bi Pi + aibi Pi + aibi = a b + a b P + a b = a b P + a b i i i i i i i i i i i i E i G i P i E i+1 G i+1 P i+1 71 72