You are on page 1of 32

representations binaires

des entiers

Information
Instructions

Donnes

Caractre

Numrique
Entiers
Non signs
Signs
Rels

BILAN : chaque case ne peut avoir que 2 tats : non


coch ou coch (TROU).
ATTENTION : la technique est binaire (Plein ou Trou),
mais linfo nest pas encore stocke de faon binaire
mais de faon dcimale.
Exemple : 13;666;69

Un mlange binaire-dcimal peu judicieux:


Exemple on souhaite stocker un ge humain. Or il faut
rserver 3 chiffres dans cette carte (3 colonnes), soit
3*10=30 infos binaires rserves, 3 tant obligatoirement
utilises, les 27 autres sont de la place perdue !
Un stockage 100% binaire sur 7 bits (dont on utilise 1 7 bits)
permet de stocker des ges jusque 127 ans.
Si on souhaite plus de marge, avec un bit de plus, on peut
stocker des ges jusque 255 ans !
Ce problme sera revu avec la notion de compression de
donnes

1) Reprsentation en base 10
On utilise le systme de numration dcimale position
On dit que 10 constitue la base de notre systme. Il
sexplique simplement par le nombre de symboles
graphiques, ou chiffres, dont nous disposons pour
reprsenter nos nombres : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Exemple:
3207 reprsente 3 milliers + 2 centaines + 0 dizaines + 7
units.
Soit 3207 = 3 x 103 + 2 x 102 + 0 x 101 + 7

2) Reprsentation en base 2
Il ny a que 2 chiffres : 0 et 1
On utilise le systme de numrations binaire position (le
principe reste le mme quen base 10)
Exemple:
10011 = 1 24 + 0 23 + 0 22 + 1 21 + 1 20
10011 = 1 16 + 0 8 + 0 4 + 1 2 + 1 1
cest--dire 19 en base 10
-Le bit (ou chiffre) le plus gauche est appel bit de poids fort
-Le bit (ou chiffre) le plus droite est appel bit de
poids faible

3) Reprsentation en base q
Le systme positionnel de prsenter le nombres
le systme de base q a besoin de q chiffres.

N= a i q i =an q n +an1 q n1 ++a2 q 2 +a1 q+a 0


i=0

32510=3 . 102 +2. 101 + 5. 10 0 ( q=10 )


510 =101 2

Dbut

C= N mod q

N= N q

oui

N>0
non
Fin

16

0000

0001

0010

0011

0100

0101

0110

0111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

1) Dans lordinateur
Cest le codage binaire qui est utilis:
Par exemple avec le nombre dont la reprsentation
dcimale est 59 :
59 = 1 x 32 + 1 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1
59 = 1 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20
59 = 1110112.

3) Addition de nombres binaires


Pour additionner deux nombres binaires on procde
comme en base 10.
0+0=0
1+1=10
1.

1+0=0+1=1
chaque fois quil y a 1+1, on crit 0 et on retient

Par exemple :

4) Multiplication de nombres binaires


Il suffit d'utiliser les quatre oprations principales ddies
la multiplication savoir :
0x0=0
0x1=0
1x0=0
1 x 1 = 1.

1 De quel entier naturel les critures suivantes sont-elles les reprsentations ? Prciser la base.
(4 7 3)8 ,(12 11 2)13 ,(1 0 1 1)2
On se rend compte que pour une base suprieure 10, la reprsentation est assez inadapte, car
difficilement lisible. On a alors lhabitude de reprsenter les chiffres suprieurs 9 par des lettres avec la
correspondance suivante : 10 : A, 11 : B, 12 : C. . .
2 De quel entier naturel les critures suivantes sont-elles les reprsentations ?
(A5)11 ,(F01)16 ,(CB2)13 .
3 Effectuer les calculs suivants en restant dans la base b donne. On vrifiera les rsultats en base 10.
(100101)2 + (1110)2 ,(1FA)16 + (AA7F)16 ,(734)8 + (3312)8 .
Les seules bases utilises en informatique sont les bases 2, 8 et 16. La base 16 est notamment utilise
pour encoder les couleurs au format RGB : on utilise 3 2 chiffres en base 16, chaque paire servant
coder dans lordre la nuance de rouge, de vert et de bleu. Par exemple, le code RGB du rouge est :
FF0000; celui du vert est 00FF00 ; et celui du bleu est 0000FF.
4 Combien de couleurs peut-on encoder avec ce systme ?
5 Comment coder le noir et le blanc ?
6 Le gris est cod comme une couleur ayant la mme quantit de chaque couleur principale. Combien
peut-on coder de nuances de gris ?
On peut demander python deffectuer les conversions vers le dcimal. Si lon tape dans le terminal
>>> 0b1101011, on rcupre la valeur dcimale de ce nombre en binaire. Pour la base 16 on crira
>>> 0xF52AE4 et pour la base 8 >>> 0o157.

La conversion dune base b vers la base 10 est simple. Par contre, donner la
reprsentation dun entier dans une base b quelconque est plus dlicat. Il faut pour
ceci effectuer des divisions euclidiennes successives. Lalgorithme est le suivant :
Entres : n un entier, b une base
representation ""
tant que n > 0 faire
representation (n%b) + representation
n n//b
Fin
retourner representation
7 Donner la reprsentation binaire de 123.
8 Donner la reprsentation hxadcimale (base 16) de 8390.

Problme : Limitation de la taille de codage


Entiers naturels (positif ou nul)
un nombre fixe doctets (1,2,4).
n bits : 0 .. 2n-1
un octet= 8 bits : 0 .. 28-1

Si on travail sur n bits , alors le bit du poids fort est utilis pour
indiquer le signe :
1 : signe ngatif
0 : signe positif
Les autres bits ( n -1 ) dsignent la valeur absolue du nombre.
Exemple : Si on travail sur 4 bits.

1 001

Signe

Valeur absolue

1001 est la reprsentation de - 1

0 001
Signe

Valeur absolue

0001 est la reprsentation de + 1

Sur 3 bits on obtient :


signe

VA

valeur

0
0
0
0

00
01
10
11

+0
+1
+2
+3

1
1
1
1

00
01
10
11

-0
-1
-2
-3

Les valeurs sont


comprises entre -3 et +3
-3 N +3
- ( 4-1 ) N + (4 -1 )
-(22 -1) N +(22-1 )
-(2 (3 -1) -1) N +(2 (3 -1) -1 )

Si on travail sur n bits , lintervalle des valeurs quon peut


reprsenter en S/VA :

-(2 (n -1) -1) N +(2 (n -1) -1 )

Avantages et inconvnients de la reprsentation


signe/valeur absolue
Cest une reprsentation assez simple .
On remarque que le zro possde deux reprsentations +0 et -0 ce
qui conduit des difficults au niveau des oprations arithmtiques.
Pour les oprations arithmtiques il nous faut deux circuits : lun
pour laddition et le deuxime pour la soustraction .
Lidal est dutiliser un seul circuit pour faire les deux oprations,
puisque a- b =a + ( -b )

On appel complment un dun nombre N un autre nombre N


tel que :
N+N=2n-1
n : est le nombre de bits de la reprsentation du nombre N .
Exemple :

Soit N=1010 sur 4 bits donc son complment un de N :


N= (24 - 1)-N
N=(16-1 )-(1010)2= (15 ) - (1010)2 = (1111)2 (1010)2 = 0101

1 0 1 0
0 1 0 1
1 1 1 1

Remarque 1 :
Pour trouver le complment un dun nombre, il suffit
dinverser tous les bits de ce nombre : si le bit est un 0
mettre sa place un 1 et si cest un 1 mettre sa place
un 0 .
Exemple :
Sur 4 Bits

Sur 5 Bits

1 0 1

0 1 0 1

0 1 0

1 0 1

Remarque 2
Dans cette reprsentation , le bit du poids fort nous indique le signe
( 0 : positif , 1 : ngatif ).
Le complment un du complment un dun nombre est gale au
nombre lui mme .

CA1(CA1(N))= N
Exemple :
Quelle est la valeur dcimale reprsente par la valeur 101010 en
complment 1 sur 6 bits ?
Le bit poids fort indique qu'il s'agit d'un nombre ngatif.
Valeur = - CA1(101010)
= - (010101)2= - ( 21)10

Si on travail sur 3 bits :

Valeur en
CA1

Valeur en
binaire

Valeur
dcimal

000
001
010
011

000
001
010
011

+0
+1
+2
+3

100
101
110
111

- 011
- 010
- 001
- 000

-3
-2
-1
-0

Dans cette reprsentation , le bit du poids fort nous indique le signe .


On remarque que dans cette reprsentation le zro possde aussi une
double reprsentation ( +0 et 0 ) .

Sur

3 bits on remarque que les valeurs sont comprises


entre -3 et +3
-3 N +3
- ( 4-1 ) N + (4 -1 )
-(22 -1) N +(22-1 )
-(2 (3 -1) -1) N +(2 (3 -1) -1 )
Si on travail sur n bits , lintervalle des valeurs quon peut
reprsenter en CA1 :

-(2 (n -1) -1) N +(2 (n -1) -1 )

1.3 Complment 2 ( complment vrai )


Si on suppose que a est un nombre sur n bits alors :
a + 2 n = a modulo 2n
et si on prend le rsultat sur n bits on va obtenir la mme
valeur que a .

a + 2 n= a
Exemple : soit a = 1001 sur 4 bits
24= 10000
+

1 0 0 1
1 0 0 0 0
1 1 0 0 1

Si on prend le rsultat sur 4 bits on trouve la mme valeur de

a = 1001

Si on prend deux nombres entiers a et b sur n bits , on


remarque que la soustraction peut tre ramener une
addition : a b = a + (-b)
Pour cela il suffit de trouver une valeur quivalente -b ?

a b = a + 2n b = a + (2n 1) b + 1
On a b + CA1(b)= 2n 1 donc CA1(b) = (2n 1) b
Si on remplace dans la premire quation on obtient :

a b = a + CA1(b) + 1
La valeur CA1(b)+1 sappelle le complment deux de b :

CA1(b)+1 = CA2(b)
Et enfin on va obtenir : a - b = a+ CA2(b) transformer la
soustraction en une addition .

Exemple
Trouver le complment vrai de : 01000101 sur 8 bits ?
CA2(01000101)= CA1(01000101)+ 1
CA1(01000101)= (10111010)
CA2(01000101)=(10111010)+ 1 = (10111011)
Remarque 1 :
Pour trouver le comptemment 2 dun nombre : il faut parcourir les
bits de ce nombre partir du poids faible et garder tous les bits
avant le premier 1 et inverser les autres bits qui viennent aprs.

0 1 0 0 0 1 0 1

1 1 0 1 0 1 0 0

1 0 1 1 1 0 1 1

0 0 1 0 1 1 0 0

Remarque 2
Dans cette reprsentation , le bit du poids fort nous indique le signe
( 0 : positif , 1 : ngatif ).
Le complment deux du complment deux dun nombre est
gale au nombre lui mme .

CA2(CA2(N))= N
Exemple :
Quelle est la valeur dcimale reprsente par la valeur 101010 en
complment deux sur 6 bits ?
Le bit poids fort indique qu'il s'agit d'un nombre ngatif.
Valeur = - CA2(101010)
= - (010101 + 1)
= - (010110)2= - ( 22)

Si on travail sur 3 bits :


Valeur en
CA2

Valeur en valeur
binaire

000
001
010
011

000
001
010
011

+0
+1
+2
+3

100
101
110
111

- 100
- 011
- 010
- 001

-4
-3
-2
-1

Dans cette reprsentation , le bit du poids fort nous indique le signe .


On remarque que le zro na pas une double reprsentation.

Sur 3 bits on remarque que les valeurs sont comprises entre -4 et +3

-4 N +3
- 4 N + (4 -1 )
- 22 N +(22-1 )
-2 (3 -1) N (2 (3 -1) -1 )
Si on travail sur n bits , lintervalle des valeurs quon peut
reprsenter en CA2 :

-(2 (n -1)) N +(2 (n -1) -1 )


La reprsentation en complment deux ( complment vrai )
est la reprsentation la plus utilise pour la reprsentation des
nombres ngatifs dans la machine.

Oprations arithmtiques en CA2


Effectuer les oprations suivantes sur 5 Bits , en utilisant la reprsentation en CA2
0 1 0 0 1
+9

+
0 0 1 0 0

+9

+4

-4

+ 13

+5

0 1 1 0 1

Le rsultat est positif

1 1 0 0

1 0 0 1 0 1

Report

(01101)2= ( 13)10
Le rsultat est positif
(00101)2= ( 5)10

0 1 0 0 1

-9
-4
- 13

1 0 1 1 1

1 0 1 1 1
-9

1 1 1
1 1

0 0

0 0 1 1

Report

+
0 1 0 0 1

+9
+0

0 0 0 0 0

Report

Le rsultat est ngatif :


Rsultat = - CA2 (10011)= -( 01101)

Le rsultat est positif

= - 13

(00000)2= ( 0)10

La retenue et le dbordement
On dit quil y a une retenue si une opration arithmtique
gnre un report .
On dit quil y a un dbordement (Over Flow ) ou
dpassement de capacit: si le rsultat de lopration sur
n bits et faux .
Le nombre de bits utiliss est insuffisant pour contenir le rsultat
Autrement dit le rsultat dpasse lintervalle des valeurs sur les
n bits utiliss.

Cas de dbordement
+

+9

0 1
0 1 0 0 1
0 1 0 0 0

+8
+ 17

1 0

Ngatif

0 0 1

-9

1 0
1 0 1 1 1
1 1 0

-8
- 17

0 0

1 0 1 1

Positif

Nous avons un dbordement si la somme de deux nombres positifs donne


un nombre ngatif .
Ou la somme de deux nombres ngatifs donne un Nombre positif
Il y a jamais un dbordement si les deux nombres sont de signes diffrents.

You might also like