2. Sommaire
Introduction
Système décimal, binaire, octal et hexadécimal
Conversion entre les bases
Opérations arithmétiques
Représentation des nombres négatifs
Représentation des nombres réels
Représentation des caractères
2
3. Comprendre c’est quoi un système de numération
Apprendre la méthode de conversion d’un système à un autre
Apprendre à faire des opérations arithmétiques en binaire
Représenter des nombres et des caractères
3
4. Nous avons pris l'habitude de représenter les nombres en
utilisant dix symboles différents: 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ,
8,9
Ce système est appelé le système décimal (déci signifie dix).
Il existe cependant d'autres formes de numération qui
fonctionnent en utilisant un nombre de symboles distincts.
◦ Exemple :
système binaire (bi: deux),
le système octal (oct: huit),
le système hexadécimal (hexa: seize).
En fait, on peut utiliser n'importe quel nombre de symboles
différents (pas nécessairement des chiffres).
Dans un système de numération : le nombre de symboles
distincts est appelé la base du système de numération.
4
6. On utilise dix symboles différents:
{0,1,2,3,4,5,6,7,8,9}
N’importe quelle combinaison des symboles { 0 , 1 , 2 , 3 , 4 , 5 , 6
, 7 , 8 , 9 } nous donne un nombre.
2334567
Poids faible
Poids fort
345 , 567
Partie fractionnelle
Partie entière
6
7. • Soit le nombre 1978, ce nombre peut être écrit sous la forme suivante :
1978 1000 900 70 8
1978 1 * 1000 9 * 100 7 * 10 8 *1
3 2 1 0
1978 1 * 10 9 * 10 7 * 10 8 * 10
Cette forma s’appelle la forme polynomiale
Un nombre réel peut être écrit aussi sous la forme polynomiale
3 2 1 0 1 2 3
1978 , 265 1 * 10 9 * 10 7 * 10 8 * 10 2 * 10 6 * 10 5 * 10
7
8. Sur une seule position : 0 ,1,2,3,4,5,….9= 101-1
Sur deux positions : 00 , 01,02, …..,99=102-1
Sur trois positions 000,001,……,999=103-1
Sur n positions : minimum 0
maximum 10n-1
nombre de combinaisons 10n
8
10. Supposons qu’on a 14 jetons , si on forme des groupes de 10 jetons. On
va obtenir 1 seul groupe et il reste 4 jetons.
1 4
Les dizaines Les unités
10
11. . Maintenant on va former des groupes de 2 jetons ( on obtient 7 groupes)
. Par la suite on va regrouper les 7 groupes 2 à 2 ( on obtient 3 groupes ).
. On va regrouper ces derniers aussi 2 à 2 ( on obtient 1 seul groupe )
. Le schéma illustre le principe :
Nombre de jetons qui restent en dehors des groupes : 0
Nombre de groupes qui contiennent 2 jetons indépendants : 1
Nombre de groupes qui contiennent 2 groupes de 2 jetons : 1
Nombre de groupes qui contiennent des groupes de 2 groupes de 2 groupes de 2jetons
:1
Si on regroupe les différents chiffres on obtient : 1110
1110 est la représentation de 14 dans la base 2 11
12. • Dans le système binaire, pour exprimer n’importe quelle
valeur on utilise uniquement 2 symboles : { 0 , 1}
La base
( 1101)2
Un bit
( 1 1 0 1)2
Le bits du poids forts Le bits du poids faible
. Un nombre dans la base 2 peut être écrit aussi sous la forme polynomial
3 2 1 0
(1110) 2
1* 2 1* 2 1* 2 0*2 (14 ) 10
3 2 1 0 1 2 3
(1110,101) 2
1* 2 1* 2 1* 2 0*2 1* 2 0*2 1* 2 (14 , 625 ) 10
12
14. • 8 symboles sont utilisés dans ce système:
{0,1,2,3,4,5,6,7}
• Exemple 1 :
2 1 0
(127) 8
1* 8 2*8 7 *8
2 1 0 1 2
(127,65) 8
1* 8 2*8 7 *8 6*8 5*8
Exemple 2 :
Le nombre (1289) n’existe pas dans la base 8 puisque les symboles 8 et 9
n’appartiennent pas à la base .
14
15. Décimal Hexadécimal
0 0
1 1
• On utilise seize (16) symboles
2 2
différents: 3 3
4 4
5 5
(17) 1 * 16
1
7 * 16
0 6 6
16
1 0 1
7 7
(AB) A * 16 B * 16 10 * 16 11 * 1
16 8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
15
16. Dans une base X , on utilise X symboles distincts pour
représenter les nombres.
La valeur de chaque symbole doit être strictement inférieur à
la base X.
Chaque nombre dans une base X peut être écrit sous sa
forme polynomiale .
16
18. • Cette conversion est assez simple puisque il suffit de faire le
développement en polynôme de ce nombre dans la base X , et
de faire la somme par la suite.
Exemple :
3 2 1 0
(1101) 2
1* 2 1* 2 0*2 1* 2 (13 ) 10
2 1 0 2 1 0
(1A7) 16
1 * 16 A * 16 7 * 16 1 * 16 10 * 16 7 * 16 256 160 7 ( 423 ) 10
3 2 1 0 1 2 3
(1101,101) 2
1* 2 1* 2 0*2 1* 2 1* 2 0*2 1* 2 (13 , 625 ) 10
1 0 1
( 43 , 2 ) 5 4*5 3*5 2*5 20 3 0,4 ( 23 , 4 ) 10
18
19. Effectuer les transformations suivantes à la base 10
?
◦ (123)6=(?)10
◦ (1100,11)2 =(?)10
◦ (1ABC)16 =(?)10
19
20. Le principe consiste à faire des divisions successives du nombre sur
2 , et prendre le reste des divisions dans l’ordre inverse.
35 2
Exemple 1 : (35)10=(?)2 1 17 2
1
8 2
0 4 2
Après division : 0 2 2
on obtient : (35)10=(100011)2
0 1 2
1 0
20
21. Un nombre réel est constitué de deux parties : la partie entière
et la partie fractionnelle.
La partie entière est transformée en effectuant des divisions
successives.
La partie fractionnelle est transformée en effectuant des
multiplications successives par 2 .
Exemple : 35,625=(?)2 0,625 * 2 = 1 ,25
P.E= 35 = (100011)2 0,25 * 2 = 0 ,5
0,5 * 2 = 1 ,0
PF= 0,625 = (?)2
(0,625)=(0,101)2
Donc 35,625=(100011,101)2
21
22. Exemple 2: (0,6)10=(?)2
0,6 * 2 = 1,2
0,2 * 2 = 0,4 (0,6)= (0,1001)2
0,4 * 2 = 0,8
0,8 * 2 = 1,6
Remarque :
Le nombre de bits après la virgule va déterminer la précision .
Exercice :
Effectuer les transformations suivantes :
(23,65)=(? )2
(18,190)=(?)2
22
23. La conversion se fait en prenant les restes des
divisions successives sur la base X dans le sens
inverse.
Exemple : 35 3
35 = (?)3 2 3
11
2
3 3
35=(1022)3 0 1 3
1 0
• Question : Effectuer les transformations suivantes :
(43)10=(?)2=(?)5 =(?)8 =(?)16
23
25. Il n’existe pas de méthode pour passer d’une base b1 à une
autre base b2 directement.
L’idée est de convertir le nombre de la base b1 à la base 10 ,
en suit convertir le résultat de la base 10 à la base b2 .
?
b1 b2
Développement
en polynôme Divisions successives
10
25
27. Octal Binaire
. En octal chaque, symbole de la base s’écrit sur 3 0 000
bits en binaire. 1 001
. L’idée de base est de replacer chaque symbole 2 010
dans la base octal par sa valeur en binaire sur 3 3 011
bits ( faire des éclatement sur 3 bits ). 4 100
5 101
Exemples : 6 110
(345)8=(011 100 101)2 7 111
(65,76)8=(110 101, 111 110)2
(35,34)8=(011 101 , 011 100)2
Remarque :
le remplacement se fait de droit à gauche pour la partie entière
et de gauche à droite pour la partie fractionnelle .
27
28. . L’idée de base est de faire des regroupements de 3 bits à partir du
poids faible.
. Par la suite remplacer chaque regroupement par la valeur octal
correspondante .
Exemple :
(11001010010110)2=(011 001 010 010 110)2=(31226)8
(110010100,10101)2= (110 010 100 , 101 010)2=(624,51)8
Remarque :
le regroupement se fait de droit à gauche pour la partie entière
et de gauche à droite pour la partie fractionnelle .
28
29. Décimal Hexadécimal
0 0
1 1
. En Hexa chaque symbole de la base s’écrit sur 4 bits. 2
3
2
3
. L’idée de base est de replacer chaque symbole 4 4
par sa valeur en binaire sur 4 bits ( faire des 5 5
éclatement sur 4 bits ). 6 6
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
Exemple : 15 F
(345B)16=(0011 0100 0101 1011)2
(AB3,4F6)16 = ( 1010 1011 0011 , 0100 1111 0110 ) 2
29
30. . L’idée de base est de faire des regroupements de 4 bits à partir du poids faible.
Par la suite remplacer chaque regroupement par la valeur Héxa correspondante .
Exemple :
(11001010100110)2=(0011 0010 1010 0110)2=(32A6)16
(110010100,10101)2= (0001 1001 0100,1010 1000)2=(194,A8)16
30
32. 1 1
4 3 6 5
+
4 5 1
5 8 11 6
En octal 8 s’écrit 10 En octal 11 s’écrit 13
0 3
Le résultat final : (5036)8
32
33. 1
4 8 6 5
+
7 A 5 1
12 18 11 6
C En hexa 11 s’écrit B
En hexa 18 s’écrit 12
B
2
Le résultat final : (C2B6)16
33
34. Effectuer les opérations suivantes et transformer le
résultat au décimal à chaque fois:
(1101,111)2+(11,1)2=(?)2
(43)16+(34)16=(?)16
(11011)2+(11000)2=(?)2
(AB1)16+(237)8=(?)16
34
35. . Les machines numériques utilisent le système binaire.
. Dans le système binaire : uniquement 2 symboles sont utilisés : 0 et 1.
. C’est facile de représenter ces deux symboles dans les machines numériques.
. Le 0 et le 1 sont représentés par deux tensions .
5v
Binaire Tension Binaire : 1
(logique ) 2,8 v
Inutilisée
0 0V
0,8 v
1 5V
Binaire : 0
0v
35
40. Il existe deux types d’entiers :
◦ les entiers non signés ( positifs )
◦ et les entiers signés ( positifs ou négatifs )
Problème : Comment indiquer à la machine qu’un
nombre est négatif ou positif ?
Il existe 3 méthodes pour représenter les nombres
négatifs :
◦ Signe/ valeur absolue
◦ Complément à 1( complément restreint )
◦ Complément à 2 ( complément à vrai )
40
41. Si on travail sur n bits , alors le bit du poids fort est utilisé
pour indiquer le signe :
1 : signe négatif
0 : signe positif
Les autres bits ( n -1 ) désignent la valeur absolue du nombre.
Exemple : Si on travail sur 4 bits.
1 001 0 001
Signe Valeur absolue Signe Valeur absolue
1001 est la représentation de - 1 0001 est la représentation de + 1
41
42. Sur 3 bits on obtient :
signe VA valeur
Les valeurs sont comprises •
0 00 +0 entre -3 et +3
0 01 +1
0 10 +2 -3 ≤ N ≤ +3
0 11 +3 - ( 4-1 ) ≤ N ≤ + (4 -1 )
-(22 -1) ≤ N ≤ +(22-1 )
-(2 (3 -1) -1) ≤ N ≤ +(2 (3 -1) -1 )
1 00 -0
1 01 -1
1 10 -2
1 11 -3
Si on travail sur n bits , l’intervalle des valeurs qu’on
peut représenter en S/VA :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )
42
43. C’est une représentation assez simple .
On remarque que le zéro possède deux représentations +0 et
-0 ce qui conduit à des difficultés au niveau des opérations
arithmétiques.
Pour les opérations arithmétiques il nous faut deux circuits :
l’un pour l’addition et le deuxième pour la soustraction .
L’idéal est d’utiliser un seul circuit pour faire les deux
opérations, puisque a- b =a + ( -b )
43
44. On appel complément à un d’un nombre N un autre
nombre N’ tel que :
N+N’=2n-1
n : est le nombre de bits de la représentation du
nombre N .
Exemple :
Soit N=1010 sur 4 bits donc son complément à 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
44
45. Pour trouver le complément à un d’un nombre, il
suffit d’inverser tous les bits de ce nombre : si le
bit est un 0 mettre à sa place un 1 et si c’est un 1
mettre à sa place un 0 .
Exemple :
Sur 4 Bits Sur 5 Bits
0 1 0 1 0 1 0 1 0
1 0 1 0 1
0 1 0 1
45
46. Dans cette représentation , le bit du poids fort nous indique le
signe ( 0 : positif , 1 : négatif ).
Le complément à un du complément à un d’un nombre est
égale au nombre lui même .
CA1(CA1(N))= N
Exemple :
Quelle est la valeur décimale représentée par la valeur
101010 en complément à 1 sur 6 bits ?
Le bit poids fort indique qu'il s'agit d'un nombre négatif.
Valeur = - CA1(101010)
= - (010101)2= - ( 21)10
46
47. Si on travail sur 3 bits :
Valeur en Valeur en Valeur
CA1 binaire décimal
000 000 +0
001 001 +1
010 010 +2
011 011 +3
100 - 011 -3
101 - 010 -2
110 - 001 -1
111 - 000 -0
Dans cette représentation , le bit du poids fort nous indique le signe .•
On remarque que dans cette représentation le zéro possède aussi une •
double représentation ( +0 et – 0 ) .
47
48. 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 , l’intervalle des valeurs qu’on peut
représenter en CA1 :
-(2 (n -1) -1) ≤ N ≤ +(2 (n -1) -1 )
48
49. Si on suppose que a est un nombre sur n bits alors :
a + 2 n = a modulo 2n
et si on prend le résultat sur n bits on va obtenir la
même 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 résultat sur 4 bits on trouve la même valeur de a = 1001
49
50. 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 première équation on obtient :
a– b = a + CA1(b) + 1
La valeur CA1(b)+1 s’appelle le complément à deux de b :
CA1(b)+1 = CA2(b)
Et enfin on va obtenir : a - b = a+ CA2(b) transformer
la soustraction en une addition .
50
51. Trouver le complément à vrai de : 01000101 sur 8 bits ?
CA2(01000101)= CA1(01000101)+ 1
CA1(01000101)= (10111010)
CA2(01000101)=(10111010)+ 1 = (10111011)
Remarque 1 :
Pour trouver le compétemment à 2 d’un 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 après.
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
51
52. Dans cette représentation , le bit du poids fort nous indique le
signe ( 0 : positif , 1 : négatif ).
Le complément à deux du complément à deux d’un nombre
est égale au nombre lui même .
CA2(CA2(N))= N
Exemple :
Quelle est la valeur décimale représentée par la valeur
101010 en complément à deux sur 6 bits ?
Le bit poids fort indique qu'il s'agit d'un nombre négatif.
Valeur = - CA2(101010)
= - (010101 + 1)
= - (010110)2= - ( 22)
52
53. Si on travail sur 3 bits :
Valeur en Valeur en valeur
CA2 binaire
000 000 +0
001 001 +1
010 010 +2
011 011 +3
100 - 100 -4
101 - 011 -3
110 - 010 -2
111 - 001 -1
Dans cette représentation , le bit du poids fort nous indique le signe .•
On remarque que le zéro n’a pas une double représentation.•
53
54. 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 , l’intervalle des valeurs qu’on peut
représenter en CA2 :
-(2 (n -1)) ≤ N ≤ +(2 (n -1) -1 )
La représentation en complément à deux ( complément à vrai )
est la représentation la plus utilisée pour la représentation des
nombres négatifs dans la machine.
54
55. Effectuer les opérations suivantes sur 5 Bits , en utilisant la représentation en CA2
0 1 0 0 1
0 1 0 0 1 +
+ +9
+9 1 1 1 0 0
0 0 1 0 0 -4
+4
+5
+ 13 1 0 0 1 0 1
0 1 1 0 1
Le résultat est positif Report
(01101)2= ( 13)10
Le résultat est positif
(00101)2= ( 5)10
55
57. On dit qu’il y a une retenue si une opération
arithmétique génère un report .
On dit qu’il y a un débordement (Over Flow ) ou
dépassement de capacité: si le résultat de
l’opération sur n bits et faux .
◦ Le nombre de bits utilisés est insuffisant pour contenir le
résultat
◦ Autrement dit le résultat dépasse l’intervalle des valeurs sur
les n bits utilisés.
57
59. Un nombre réel est constitué de deux parties : la
partie entière et la partie fractionnelle ( les deux
parties sont séparées par une virgule )
Problème : comment indiquer à la machine la
position de la virgule ?
Il existe deux méthodes pour représenter les
nombre réel :
◦ Virgule fixe : la position de la virgule est fixe
◦ Virgule flottante : la position de la virgule change
( dynamique )
59
60. Dans cette représentation la partie entière est
représentée sur n bits et la partie fractionnelle sur p bits
, en plus un bit est utilisé pour le signe.
Exemple : si n=3 et p=2 on va avoir les valeurs suivantes
Signe P.E P.F valeur
0 000 00 + 0,0 Dans cette représentation les
0 000 01 + 0,25 valeurs sont limitées et nous
n’avons pas une grande précision
0 000 10 + 0,5
0 000 11 + 0,75
0 001 .00 + 1,0
. . . .
. . . .
60
61. Chaque nombre réel peut s’écrire de la façon
suivante :
N= M * b e
◦ M : mantisse ,
◦ b : la base ,
◦ e : l’exposant
Exemple :
15,6 = 0,156 * 10+2
- ( 110,101)2 = - (0,110101)2 * 2+3
(0,00101)2= ( 0,101)2 * 2-2
Remarque :
on dit que la mantisse est normalisée si le premier
chiffre après la virgule est différent de 0 et le
premier chiffre avant la virgule est égale à 0.
61
62. Dans cette représentation sur n bits :
◦ La mantisse est sous la forme signe/valeur absolue
1 bit pour le signe
et k bits pour la valeur.
◦ L’exposant ( positif ou négatif ) est représenté sur p
bits .
Signe mantisse Exposant Mantisse normalisée
1 bit p bits k bits
Pour la représentation de l’exposant on utilise :
* Le complément à deux
* Exposant décalé ou biaisé
62
63. On veut représenter les nombres ( 0,015)8 et -( 15, 01)8 en
virgule flottante sur une machine ayant le format suivant :
Signe mantisse Exposant en CA2 Mantisse normalisée
1 bit 4 bits 8 bits
(0,015)8=(0,000001101)2= 0,1101 * 2-5
Signe mantisse : positif ( 0)
Mantisse normalisé : 0,1101
Exposant = -5 utiliser le complément à deux pour représenter le -5
Sur 4 bits CA2(0101)=1011
0 1 0 1 1 1 1 0 1 0 0 0 0
1 bit 4 bits 8 bits
63
64. - (15,01)8 = - (001101,000001)2= - 0,1101000001 * 24
Signe mantisse : négatif ( 1)
Mantisse normalisée : 0,1101000001
Exposant = 4 , en complément à deux il garde la même valeur ( 0100)
On remarque que la mantisse est sur 10 bits (1101 0000 01), et sur la
machine seulement 8 bits sont utilisés pour la mantisse.
Dans ce cas on va prendre les 8 premiers bits de la mantisse
1 0 1 0 0 1 1 0 1 0 0 0 0
1 bit 4 bits 8 bits
Remarque :
si la mantisse est sur k bits et si elle est représentée sur la machine
sur k’ bits tel que k> k’ , alors la mantisse sera tronquée : on va prendre
uniquement k’ bits perdre dans la précision .
64
65. en complément à 2, l’intervalle des valeurs qu’on peut
représenter sur p bits :
-2 (p -1) ≤N≤ 2 (p -1) -1
Si on rajoute la valeur 2 (p -1) à tout les terme de cette inégalité :
-2 (p -1) +2 (p -1) ≤ N + 2 (p -1) ≤ 2 (p -1) -1+
2 (p -1)
0 ≤ N+2 (p -1) ≤ 2 p -1
On pose N’= N + 2 (p -1) donc : 0 ≤ N’ ≤ 2 p -1
Dans ce cas on obtient des valeur positives.
La valeur 2p-1 s’appelle le biais ou le décalage
65
66. Avec l’exposant biaisé on a transformé les exposants
négatifs à des exposants positifs en rajoutons à
l’exposant la valeur 2p -1.
Exposant Biaisé = Exposant réel + Biais
66
67. On veut représenter les nombres ( 0,015)8 et -( 15, 01)8en
virgule flottante sur une machine ayant le format suivant :
Signe mantisse Exposant décalé Mantisse normalisée
1 bit 4 bits 11 bits
(0,015)8=(0,000001101)2= 0,1101 * 2-5
Signe mantisse : positif ( 0)
Mantisse normalisé : 0,1101
Exposant réel = -5
Calculer le biais : b= 24-1 = 8
Exposant Biaisé = -5 + 8 = +3 = ( 0011)2
0 0011 1 1 0 1 0 0 0 0 0 0 0
1 bit 4 bits 11 bits
67
70. Pour passer du décimal au binaire , il Décimal Binaire
faut effectuer des divisions 0 0000
successives. Il existe une autre 1 0001
méthode simplifiée pour le passage
2 0010
du décimal au binaire.
3 0011
4 0100
Le principe consiste à faire des
éclatement sur 4 bits et de remplacer 5 0101
chaque chiffre décimal par sa valeur 6 0110
binaire correspondante . 7 0111
8 1000
Les combinaisons supérieures à 9 9 1001
sont interdites
70
72. le passage d’un mot-code au suivant
entraînera toujours le changement d’un bit et
d’un seul.
le code gray n’est pas pondéré, il n’est donc
pas adapté pour le calcul numérique.
Décimal Binaire naturel Code de Gray
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 111 101
72
73. Les caractères englobent : les lettres alphabétiques ( A, a, B ,
B,.. ) , les chiffres , et les autres symboles ( > , ; / : …. ) .
Le codage le plus utilisé est le ASCII (American Standard Code
for Information Interchange)
Dans ce codage chaque caractère est représenté sur 8 bits .
Avec 8 bits on peut avoir 28 = 256 combinaisons
Chaque combinaison représente un caractère
◦ Exemple :
Le code 65 (01000001)2correspond au caractère A
Le code 97 (01100001) correspond au caractère a
Le code 58 (00111010 )correspond au caractère :
Actuellement il existe un autre code sur 16 bits , se code
s’appel UNICODE .
73
74. ASCII: American Standard Code for
Information Interchange.
74