You are on page 1of 60

Le codage binaire

1CPA : Computer Architecture

SUPINFO Official Document

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Objectifs de ce chapitre
En suivant ce chapitre vous allez :

 Découvrir l’arithmétique en base 2.


 Comprendre les mécanismes de
conservions : décimal – binaire.
 Apprendre les principes des calculs
en base 2.
 Connaître les passages entre base 2
et base 10.

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Plan du chapitre
Voici les parties que nous allons aborder :

 Le codage des entiers positifs.


 Le codages des entiers négatifs.
 L’arithmétique binaire.

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Le codage des entiers positifs

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Plan de la partie
Voici les parties que nous allons aborder :

 Ou se situe la couche numérique ?


 Histoire de la numérotation binaire.
 Pourquoi le binaire ?
 Binaire positif vers décimal positif.
 Décimal positif vers binaire positif.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Ou se situe la couche numérique ?


Langage de Programmation Traducteurs/Compilateurs

Assembleur Langage d’assemblage

Système d’exploitation Codeurs/décodeurs

ordonnanceur Jeux d’instructions

Unité de calcul Exécution

Logique et numérique

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Histoire de la numérotation binaire


Les trigrammes de Fu Hsi
Fu Hsi, considéré comme le premier roi chinois (le premier des trois
Augustes), aurait vécu, il y a plus de 5000 ans.
A l’origine du Yi King (livre des mutations) contenant les trigrammes
disposés dans l’ordre du ciel antérieur.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Histoire de la numérotation binaire


Les trigrammes et les hexagrammes du roi Wen
Le roi Wen (1150-750 av. J.C), aurait proposé une disposition
inversée des trigrammes dit du ciel postérieur.
Il aurait aussi complété le Yi King en introduisant les 64
hexagrammes qui sont la combinaison de 2 trigrammes.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Histoire de la numérotation binaire


L’alphabet bilitère de Francis Bacon

Francis Bacon (1561-1626) a mis au point un alphabet bilitère


afin de chiffrer des messages.
Système basé sur les lettres A et B ( très voisin du codage binaire)
dont la combinaison permet de reformer l’alphabet.

AAA AAB ABA ABB BAA BAB BBA BBB

AA A B C D E F G H

AB I-J K L M N O P Q

BA R S T U-V W X Y Z

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Histoire de la numérotation binaire


L’alphabet bilitère de Francis Bacon

Placer le message secret dans un texte de couverture en utilisant


2 écritures légèrement différentes (les polices A et B).
Pour retrouver le message, traduire le texte en une suite de A et de
B en se basant sur le type de caractères puis utiliser la table de
correspondance pour trouver les lettres du message :

N E P A R T E Z S U R T O U T P A S S A N S M O I
A A B A B B A A B B B A B B A A A B A A B A B B B
F U Y E Z

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Histoire de la numérotation binaire


L’algèbre binaire de Leibniz
Gottfried Wilhelm Leibniz (1646-1716) a étudié le procédé de
chiffrage de Bacon et les trigrammes du Yi King.
Met au point l’arithmétique binaire et expose ses travaux devant
l'Académie des Sciences de Paris.
Publie "Explication de l'arithmétique binaire" en 1703.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Histoire de la numérotation binaire

Einer hat alles aus nichts gemacht.

Tout est créé à partir de l'unité (1, Dieu) et


du néant (0).
— Gottfried Wilhelm Leibniz

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Pourquoi le binaire ?

Un nombre (mot) binaire est constitué uniquement de 1 et de 0.

Dans un ordinateur, les mots binaires représentent le codage de


l’information (nos programmes).

Ces mots binaires sont stockés dans les mémoires de l’ordinateur


et sont véhiculés par des bus (fils conducteurs isolés entre eux).

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Pourquoi le binaire ?

Le regroupement de 8 chiffres binaires est nommé octet (Byte).


Plus précisément, un octet, c’est 8 bits et un bit signifie binary
digit c’est-à-dire 0 ou 1 (deux états possibles pour un bit).

Dans un nombre binaire, la valeur d’un bit est appelée poids. Le


nom du poids dépend de son positionnement dans le nombre. Par
convention, les bits de gauche dans le nombre sont appelés, bits
de poids fort, ceux de droite, bits de poids faible.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Pourquoi le binaire ?

En 1938, Claude Shannon (1916-2001) expose lors de ses travaux


de thèse, le principe d’ouverture (le 0), fermeture (le 1) de circuit
électrique. Il explique le principe de la machine à relais.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Pourquoi le binaire ?

Un ordinateur est un circuit (électronique) ou circule de la tension.


Le binaire représente les états de logique (états d’équilibre) de
l’ordinateur traduit par 1, si il y a une tension, ou 0, en absence de
tension.

Nos programmes manipulent, calculent et utilisent donc


uniquement des mots binaires.

Les opérations binaires seront utiles pour construire et comprendre


les réseaux informatiques.
© SUPINFO International University – http://www.supinfo.com
Le codage des entiers positifs

Binaire positif vers décimal positif


Méthode de conversion – Le principe

Un nombre binaire s’écrit avec 2 chiffres (1 et 0).


Il est possible de déterminer la valeur décimale associée grâce à un
tableau de correspondance :

Nombre binaire 1 0 1 0 1
    

Coefficients 24
16 283 242 221 210

Nombre décimal 16 + 0 + 4 + 0 + 1 = 21

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Binaire positif vers décimal positif


Méthode de conversion – D’un point de vue mathématique

En base 10, si un nombre N s’écrit xyz10, cela signifie que :


 N = x.100 + y.10 + z.1
 N = x.102 + y.101 + z.100

Même principe en base 2, si un nombre M s’écrit abcde2, cela


signifie que :
 M = a.24 + b.23 + c.22 + d.21 + e.20
 M = a.16 + b.8 + c.4 + d.2 + e.1

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Binaire positif vers décimal positif


Exemple :

Si N = 10110102, nous obtenons :


 N = 126 + 025 + 124 + 123 + 022 + 121 + 020
 N = 164 + 032 + 116 + 18 + 04 + 12 + 01
 N = 9010

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Décimal positif vers binaire positif


Première méthode (les divisions successives)
Soit un nombre N = xyz10 écrit en base 10, nous devons écrire ce
même nombre sous la forme :
 N = N0 = an . 2n + an-1 . 2n-1 … + a0 . 20

Pour cela, nous effectuons une série de divisions par 2 :


 Si nous divisons N0 par 2, nous obtenons :
 un reste qui correspond à a0.
 un quotient qui devient le nombre N1 qui sera divisé par 2
au coup suivant …
 Nous nous arrêtons quand Ni est égal à 0 ou à 1.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Décimal positif vers binaire positif


Exemple :
Si N = 9010, nous obtenons :

90 2
-90 45 45 2
0 -44 22 22 2
1 -22 11 11 2
0 -10 5 5 2
1 -4 2 2 2
1 -2 1 1 2
0 -0 0
1

En lisant de droite à gauche, nous retrouvons 10110102.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Décimal positif vers binaire positif


Seconde méthode (algorithme d’écriture)

Nous posons les variables suivantes :

 N est le nombre décimal à transformer.


 B est le nombre binaire obtenu à l’issu du traitement.
 M est la puissance de 2 (en cours).
 mMax est la puissance de 2 de départ, cette variable entière
correspond également au nombre de chiffres avec lesquels sera
écrit B. Généralement ce nombre est fixé de la manière suivante :
 Prenons la puissance de 2 (2k), immédiatement supérieure à N.
 Fixons alors mMax = k.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Décimal positif vers binaire positif


Seconde méthode (algorithme d’écriture)
Début

Saisie de N B« »

mmMax

oui non
m≥0

Ajouter 0 à oui non Ajouter 1 à Afficher B


2m>N
B B

mm–1 N  N – 2m Fin

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Décimal positif vers binaire positif


Exemple :

Si N = 2610 et mMax = 510, nous obtenons :

M Test N B
départ 26 « »
5 25=32 > 26 26 «0»
4 24=16 ≤ 26 10 = 26 – 16 « 01 »
3 23=8 ≤ 10 2 = 10 – 8 « 011 »
2 22=4 > 2 2 « 0110 »
1 21=2 ≤ 2 0=2–2 « 01101 »
0 20=1 > 0 0 « 011010 »

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers positifs

Pause-réflexion sur cette 1ère partie

Avez-vous des questions ?

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

L’arithmétique binaire

© SUPINFO International University – http://www.supinfo.com


L’arithmétique binaire

Plan de la partie
Voici les parties que nous allons aborder :

 Addition des binaires positifs.


 Soustraction des binaires positifs.
 Multiplication des binaires.
 Division des binaires.

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Addition des binaires positifs


Méthode manuelle avec propagation de la retenue

Même principe que l’addition en base 10.

Retenue créée lorsque la somme dépasse 12.

4 cas :
 02 + 02 = 02
 02 + 12 = 12
 12 + 02 = 12
 12 + 12 = 121 + 020 = 102 (nous créons une retenue)

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Addition des binaires positifs


Exemple :
Additionner 101110112 et 11012 :

Addition binaire Addition décimale


1 1 1 1 1 1 1 1
1 0 1 1 1 0 1 1 1 8 7
+ 1 1 0 1 + 1 3
1 1 0 0 1 0 0 0 2 0 0

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Soustraction des binaires positifs


Méthode manuelle avec propagation de la retenue négative

Même principe que la soustraction en base 10.

Retenue créée lorsque la différence est inférieure à 02

4 cas :
 02 – 0 2 = 02
 12 – 1 2 = 02
 12 – 0 2 = 12
 02 – 12 = 102 – 12 – 102 = 12 – 102 (retenue négative)

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Soustraction des binaires positifs


Exemple :
Soustraire 11012 à 110010002 :

Soustraction binaire Soustraction décimale


-1 -1 -1 -1 -1 -1 -1 -1
1 1 100 10
0 11
1 10
0 10
0 10
0 2 10
0 10
0
– 1 1 0 1 – 1 3
1 0 1 1 1 0 1 1 1 8 7

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Multiplication des binaires


La multiplication par une puissance de 2

Se traduit par un décalage vers la gauche du nombre multiplié.


Nombre de crans correspondant à la puissance de 2 de l’élément
multiplicateur.

Supposons 2 nombres A et B, tel que B=2N :


 B s’écrit "1" suivi de N "0"
 A  B s’écrit A suivi de N "0"

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Multiplication des binaires


Exemple de multiplication par une puissance de 2 :

Soient A = 1011011101110012 et B = 100002.

Nous obtenons A  B = 10110111011100100002.

Si nous traduisons ces 3 nombres en base 10, nous avons :


 A = 2348110
 B = 1610
 A  B = 37569610 = 2348110  1610

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Multiplication des binaires


Le principe de la multiplication de 2 binaires

Plusieurs multiplications successives par des puissances de 2


croissantes (plusieurs décalages).

Une addition des produits intermédiaires pour former le résultat


final.

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Multiplication des binaires


Exemple :
Multiplier 101001112 à 11002 :

Multiplication binaire Multiplication décimale

1 0 1 0 0 1 1 1 1 6 7
 1 1 0 0  1 2
1 1 1 1 1
0 0 0 0 0 0 0 0 3 3 4
0 0 0 0 0 0 0 0 0 + 1 6 7 0
1 0 1 0 0 1 1 1 0 0 2 0 0 4
+ 1 0 1 0 0 1 1 1 0 0 0
1 1 1 1 1 0 1 0 1 0 0

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Division des binaires


La division par une puissance de 2

Se traduit par un décalage vers la droite du nombre divisé.


Nombre de crans correspondant à la puissance de 2 de l’élément
diviseur.

Supposons 2 nombres A et B, tel que B=2N :


 B s’écrit "1" suivi de N "0"
 A / B s’écrit "A privé des N bits de poids faible"

La division entière se traduit par la perte des bits de poids faible.

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Division des binaires


Exemple de division par une puissance de 2 :

Soient A = 1011011101110012 et B = 100002 :

Nous obtenons A / B = 1011011101110012.

Si nous traduisons ces 3 nombres en base 10, nous avons :


 A = 2348110
 B = 1610
 A / B = 146710

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Division des binaires


Le principe de la division de 2 binaires

Pour décrire le processus de la division , nous supposons 2 nombres


binaires A et B. Nous posons alors les notations suivantes :
 nA est la taille (en nombre de chiffres) du nombre A.
 nB est la taille (en nombre de chiffres) du nombre B.
 b1 et b2 sont des numéros de bits (pour un binaire) ayant une
taille de N, les bits sont numérotés de 0 à N-1, le bit 0 étant
celui de poids faible.
 A’ est un nombre binaire formé en prenant les bits de A dont
les numéros sont compris entre b1 et b2.

© SUPINFO International University – http://www.supinfo.com


L'arithmétique binaire

Division des binaires


Le principe de la division de 2 binaires (A/B)
Début quotient  « »

b1  nA-1
A’  A’ – B
b2  max (0, b1 – nB-1)

Ajouter 1 à non
b1-b2 ≥ nB Fin
quotient
oui
oui
Construire A’ en
A’ ≥ B prenant les bits
non numéro b1 … b2

Ajouter 0 à
b2  b2 -1
quotient
© SUPINFO International University – http://www.supinfo.com
L'arithmétique binaire

Division des binaires


Exemple :
Diviser 101101112 par 11002 :
Division binaire Division décimale
10110111 1100 1 8 3 1 2
– 1100 0 1111 –1 2 1 5
1010111 6 3
– 1100 – 6 0
100111 3
– 1100
1111
– 1100
11

Nous avons 11112 = 1510 pour le quotient et 112 = 310 pour le reste
de la division.
© SUPINFO International University – http://www.supinfo.com
L'arithmétique binaire

Pause-réflexion sur cette 2ième partie

Avez-vous des questions ?

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Le codages des entiers négatifs

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Plan de la partie
Voici les parties que nous allons aborder :

 Codage des nombres binaires négatifs.


 Soustraction des binaires.
 Pourquoi complément à 2 ?

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Codage des nombres binaires négatifs


Le principe

3 codages possibles pour les nombres signés (négatifs) :


 Coder par bit de signe et valeur absolue.
 Utiliser le complément à 1.
 Utiliser le complément à 2.

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Codage des nombres binaires négatifs


Codage par bit de signe et valeur absolue

Signe porté par le bit de poids fort :


 0 pour une valeur positive.
 1 pour une valeur négative.

Les autres bits servent à coder la valeur absolue :

Valeur positive Valeur négative


000010112 = 1110 100010112 = – 1110
000000002 = 010 100000002 = – 010

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Codage des nombres binaires négatifs


Complément à 1

Signe encore porté par le bit de poids fort.


Nous passons d’une valeur à son opposée en inversant les bits :

Valeur positive Valeur négative


000010112 = 1110 111101002 = – 1110
000000002 = 010 111111112 = – 010

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Codage des nombres binaires négatifs


Complément à 2

Signe toujours porté par le bit de poids fort.


Nous construisons le complément à 2 en ajoutant 1 au complément
à 1 décrit précédemment.
S’effectue en ayant fixé le nombre de bits utilisés pour coder les
nombres (ici 8 bits) :

Valeur positive Valeur négative


000010112 = 1110 111101002 + 12 = 111101012 = – 1110
000000002 = 010 111111112 + 12 = 000000002 = – 010

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Codage des nombres binaires négatifs


Complément à 2
Encore appelé : complément vrai.
Nous sommons un nombre et son contraire : nous obtenons 0 car
nous perdons la dernière retenue (addition sur un nombre limité
de bits) :

Addition binaire Addition décimale


1 1 1 1 1 1 1
1 1 1 1 0 1 0 1 -1 1
+ 0 0 0 0 1 0 1 1 + 1 1
1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Soustraction des binaires


Méthode par addition du complément à 2

Plus facilement transposable en électronique.


Nécessite de fixer le nombre de bits sur lequel nous travaillons.

Supposons la soustraction A – B, le processus est le suivant :


 construire le complément à 2 de B (nous obtenons –B)
 sommer A et –B

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Soustraction des binaires


Exemple :
Soustraire 1610 à 4710 :
 Etape 1 : Traduire en binaire :

Décimal Binaire Complément à 1 Complément à 2


47 00101111 11010000 11010001
16 00010000 11101111 11110000

 Etape 2 : Effectuer l’addition :

Addition binaire Soustraction décimale


1 1
0 0 1 0 1 1 1 1 4 7
+ 1 1 1 1 0 0 0 0 – 1 6
1 0 0 0 1 1 1 1 1 3 1
© SUPINFO International University – http://www.supinfo.com
Le codage des entiers négatifs

Pourquoi le complément à 2 ?

Complément à 2 0100

Binaires Positifs Binaires Négatifs 1100

Complément à 2
0100

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Pourquoi le complément à 2 ?
Soustraction par méthode des additions

5 en décimal sur 4 bits : 0101 et faisons 5 + (-5).


Valeur signée : 0101 + 1101 = 1 0010

Valeur complément à 2 : 0101 + 1011 = 1 0000

?
© SUPINFO International University – http://www.supinfo.com
Le codage des entiers négatifs

Pourquoi le complément à 2 ?
Débordement (Overflow) ou Retenue (Dépassement)

Si nous respectons la taille des mots dans un ordinateur,


nous ne pouvons pas dépasser leur capacité.

En binaire positif le dépassement de capacité s’appelle une


retenue (Carry). Cette retenue est conservée dans un
emplacement bien précis de l’ordinateur : le registre des états
(flag C).
En binaire négatif (complément à 2) en plus de la retenue,
nous avons aussi la notion de débordement (Overflow). Ce
débordement est conservé dans le registre des états (flag V).

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Pourquoi le complément à 2 ?
Débordement (Overflow) ou Retenue (Dépassement)

Soustraction de -4 -2 en décimale
 -4 + (-2)  1100 + 1110 en binaire

Addition C2 Soustraction décimale


1
1 1 0 0 - 0 4
+ 1 1 1 0 - 0 2
1 1 0 1 0 - 0 6

Carry / retenue / flag C = 1

Pas Overflow / Pas débordement / flag V = 0 1010  0110 donc -6

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Pourquoi le complément à 2 ?
Débordement (Overflow) ou Retenue (Dépassement)

Soustraction de -4 -7 en décimale
 -4 + (-7)  1100 + 1001 en binaire

Addition C2 Soustraction décimale

1 1 0 0 - 0 4
+ 1 0 0 1 - 0 7
1 0 1 0 1 - 1 1

Carry / retenue / flag C = 1

Overflow / débordement / flag V = 1 0101  +5 pas -11

© SUPINFO International University – http://www.supinfo.com


Le codage des entiers négatifs

Pause-réflexion sur cette 3ième partie

Avez-vous des questions ?

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Résumé du chapitre

L’arithmétique
binaire

Le codage
binaire négatif
Le codage binaire
positif

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Pour aller plus loin…


Si vous voulez approfondir vos connaissances:

Publications

 http://library.supinfo.com

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Pour aller plus loin…


Si vous voulez approfondir vos connaissances:

Publications

© SUPINFO International University – http://www.supinfo.com


Le codage binaire

Fin du module

Merci de votre attention


© SUPINFO International University – http://www.supinfo.com

You might also like