Vous êtes sur la page 1sur 17

Faculté de sciences

Département d’informatique
Module : ADO 1
Fiche de TD 1 : système de numération

Exercice 01 : Convertir en :
1- binaire (base 2), les nombres suivants : (43)10 (93)10 (135)10 (270)10 (520)10
2- décimal (base 10), les nombres suivants : (1101)2 (1110)2 (1110.101)2 (110011.10) 2
3- octal (base 8), les nombres suivants : (43)10 (96)10 (117)10 (233)10
4- hexadécimal (base 16), les nombres suivants : (43)10 (27)10 (189)10 (374)10
5- décimal (base 10), les nombres suivants : (1A7)16 (2C53.12)16 (421)8 (2019)8
6- binaire (base 2), les nombres suivants : (345B)16 (AB3,4F6)16 (345)8 (65.76)8
7- hexadécimal (base 16), les nombres suivants :
(1001)2 (11001010100110)2 (110010100.10101)2 (10111110010111.101)2
8- octal (base 8), les nombres suivants :
(11001010010110)2 (10010)2 (110010100.10101)2 (1100111.1101)2

Exercice 02 :
1- Lesquelles des suites de chiffres 10101100 ; 1010211 ; 10108141 ; 2A0GF00 Peuvent-
elles être la représentation d’un nombre en base 2, en base 8, en base 16 ?
2- Convertir en binaire (base 2) les nombres suivants :(35.625)10 , (0.6)10

Exercice 03 : Calculer les opérations suivantes :


1- Base 8 : 756 + 122 , 132+136 , 337-155
2- Base 16 : F2C + 4C3, AB20-1CD1
3- Base 2 : 1100011 + 10001011 , 1001 + 1011, 1010 -111
4- Base 2 : 1011*1101 , 101011110*101 , 10111011/101 , 101011110/110

Exercice 04 :
1- Quel est le nombre maximum qu’on peut le représenter sur 8 bits, 16 bits et 32 bits
2- Créer la table du code BCD de 0 à 9
3- Coder en BCD puis faire la somme et corriger les résultats : 19 et 21, 384 et 167, 328 et
469, 220 et 379
4- Refaire le même travail en code EXCES3

Exercice 05 :
1- Créer la table du code gray de 0 à 16
2- Quel est le nombre suivant en code gray : 11100111 , 10111010 , 10011111 , 10101100 ,
10011001 , 11111000
3- Convertir les nombres suivants :
 (1010)gray = (? ? ? ? )2 , (10111)gray = (? ? ? ? ? )2 , (1010011)gray = (? ? ? ?
? ? ? )2
 (1011)2 = (? ? ? ? )gray , (11011)2 = (? ? ? ? ? )gray , (1011011)2 = (? ? ? ? ?
? )gray
 (1010011)gray = (? ? ? )10, (10101011)gray=(? ? ? )10, (1101000011)gray
=(? ? ? )10

Exercice 06 :
1- Donner le nombre de bits minimum pour représenter le nombre non signé 1480.
2- Donner le nombre de bits minimum pour représenter 240 combinaisons des entiers non
signés
3- Si un nombre de k chiffres en décimal, environ combien de chiffres y a-t-il en binaire non
signés
4- Si un nombre de k chiffres en base a, environ combien de chiffres y a-t-il en base b

Exercice 07 :
1- Compléter le tableau suivant taille du mot sur n bits tel que n = 1 octet :
Nombres entiers Nombres entiers signés
non signés SVA Cà1 Cà2
Nombres de combinaisons possibles
Nombres de valeurs possibles
Intervalle des valeurs
2- Quel est dans un octet le bit qui sert de bit de signe ?
3- Quel est la plus grande valeur positive que l’on puisse écrire un nombre signé de 8 bits
dans les trois codages signe et valeur absolue complément à 1 et complément à 2 ? D’où
sur n bits ?
4- Quelle est la valeur décimale du nombre signé (FF)16 en SVA, Cà1 et Cà2 ?
5- Que vaut le nombre non signé (FF)16 ?
6- Que vaut le nombre signé (80)16 dans les codages SVA, Cà1 et Cà2 ?
7- Que donne le calcul 0 moins 1 s’il est fait en hexadécimal avec des nombres de 1 octet ?
8- Que donne le calcul 0 moins 1 s’il est fait en hexadécimal avec des nombres de 2
octets ?
9- Le code de 8 bits (7F)16 a-t-il la même valeur si ce nombre est signé ou non ?
10- Quel est la plus grande valeur positive que l’on puisse écrire avec un nombre signé de 2
octets ?

Exercice 08 :
1- Quels sont les valeurs (en décimal) des nombres binaires suivants codés en non signée,
SVA, Cà1 et Cà2 : 01110, 11011, 11111, 1111, 10000, 100001, 111010
2- Calculer en Cà1 et commenter le résultat sur 6 bits :
1) +18+7 2) +24+10 3) -15-14 4) -26-17 5) +28-5 6) +6-31
3- La même question que (2) mais en Cà2

Exercice 09 :
1) Convertir le nombre décimal 8,625 en virgule flottante suivant la norme IEEE 754 :
2) Donnez la traduction à laquelle correspond le mot de 4 octets (49 55 50 31) 16 selon le
codage :
a) Un entier signé,
b) Un entier représenté en complément à 2,
c) Un nombre représenté en virgule flottante simple précision suivant la norme IEEE 754,
d) Une suite de caractères ASCII.
corrections
Conversion d’une base X à la base 10 :
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 :
(1110)2  1* 23 1* 221* 2 1  0* 20  (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 10  (14,625)

(1101)2 3 2 1 0
 1* 2 1* 2  0* 2 1* 2  (13)
10
(1A7)16 2 1 0 2 1 0
 1*16  3A*16 2 7 *161  1*16
0
10*16
1
 7 2*16  256
3
160  7  (423)
10
(1101,101)2  1* 2 1* 2  0* 2 1* 2 1* 2  0* 2 1* 2 10(13,625)
1 0 1
(43,2)5 4 *5  3*5  2*5  20  3  0,4  (23,4)10
(127)8  1*82 2 *81 7 *80
2 1 0 1 2
(127,65)8  1*8  2*8  7 *8  6 *8  5*8

Conversion de la base 10 à la base x :


La conversion se fait en prenant les restes des divisions successives sur la base X dans le
sens inverse.

Exemple : (43)10=(?)2=(?)5 =(?)8 =(?)16


Il existe deux méthodes pour la conversion décimal vers binaire :
1- La première en effectuant les divisions successives sur 2, et
2- la deuxième en effectuant le tableau de puissance de 2 :cette méthode consiste a
retrancher la plus grande puissance de 2 possible et ainsi de suite dans l’ordre
décroissant. si on peut retirer la puissance de 2 concernée on note (1) sinon on note
(0) et on continue de la même manière jusqu’à la petite puissance de 2 possible.

Exemple (43)10 = ( ? )2

256 128 64 32 16 8 4 2 1
𝟐𝟖 𝟐𝟕 𝟐𝟔 𝟐𝟓 𝟐𝟒 𝟐𝟑 𝟐𝟐 𝟐𝟏 𝟐𝟎
1 0 1 0 1 1

(43)10 = ( 101011 )2 c.-à-d. (43)10 =1* 𝟐𝟓 + 0* 𝟐𝟒 + 1*𝟐𝟑 +0*𝟐𝟐 +1*𝟐𝟏 +1*𝟐𝟎

Conversion de la base 10 à la base X : cas d’un nombre réel :


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 sur X.


La partie fractionnelle est transformée en effectuant des multiplications successives
par X .
Conversion : binaire vers octal :
On peut remarquer que 8= 23

Donc en octal chaque, symbole de la base s’écrit sur 3 bits en binaire.

Exemples :

(345)8=(011 100 101)2

(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 .

Conversion : Octal vers binaire :


. L’idée de base est de faire des regroupements de 3 bits à partir du poids faible et en
remplaçant 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,52)8

Remarque :

le regroupement se fait de droit à gauche pour la partie entière

et de gauche à droite pour la partie fractionnelle .

Conversion : hexadécimal vers binaire :


De la même manière on peut remarquer que 16= 24
En Hexa chaque symbole de la base s’écrit sur 4 bits donc en remplaçant chaque symbole par
sa valeur en binaire sur 4 bits

Exemple :

(345B)16=(0011 0100 0101 1011)2

(AB3,4F6)16 = ( 1010 1011 0011 , 0100 1111 0110 ) 2

Conversion : binaire vers hexadécimal


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

Conversion d’une base b1 à une base b2

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 .
Exercice02 :

1- Lesquelles des suites de chiffres 10101100 ; 1010211 ; 10108141 ;

2A0GF00 Peuvent-elles être la représentation d’un nombre en base 2, en base 8, en

base 16 ?

10101100 Peut être en binaire, octal ,

hexadécimal 1010211 Peut être en octal ,

hexadécimal 10108141 En hexadécimal

2A0GF00 Autre base parce que le G n’est un symbole hexa

1- Conversion de la base 10 à la base X : cas d’un nombre réel :

Exercice03 : on peut effectuer des opérations de base (addition, soustraction,


multiplication, division) en différent système de numération (binaire, octal
hexadécimal, …) avec la même façon qu’en système décimal

Addition base 2

Addition base 8
Addition base 16

Le résultat final : (C2B6)16

Addition en base 8 Soustraction en base 16 Soustraction en base 2

- 1 10 11 10
1 11 11 1
0 0 1 1

Multiplication en base 2 :
Division en base 2

Exercice4

1- L'unité de base est


l'octet 0000 0000 => 0
1111 1111 => 28-1 = 255 donc de 0 à 255 on a 256 combinaisons

16 bits =>[0 ; 216-1]= [0; 65,535]


24 bits =>[0 ; 224-1]= [0; 16,777,215]
32 bits =>[0 ; 232-1] =[0; 4,294,967,295]
2- Le codage BCD (Binary Coded Decimal )

Le principe consiste à faire des éclatements sur 4 bits


et de remplacer chaque chiffre décimal par sa valeur
binaire correspondante.
• Les combinaisons supérieures à 9 sont
Interdites.
19 = (0001 1001)bcd
● + 21 = (0010 0001 ) bcd
● = (0011 1010)bcd = ( 3A)
le nombre A est interdit
● Corriger le résultat en ajoutant 6 3A +6 = 40
On respecte la règle :
Pour compter en BCD, on compte en binaire, et on détecte la combinaison 1010 qui suit
1001=9 et on ajoute 6, ce qui corrige le digit et ajoute 1 au chiffre de poids plus fort.

3- Le codage EXCESS3 ( BCD+3 )

Convertir le nombre 19 et 21 en EXcess3 Puis faire la somme


19 = (0100 1100)bcd
+ 21 = (0101 0100)bcd
= (1010 0000)bcd = (A0)
(-0011 +0011)
= (40)10
si il y a une retenue, on ajoute 3
Sinon, soustraire 3
Exercice 05
Code binaire réfléchi : Dans ce code, appelé code GRAY, un seul bit change de valeur entre
deux codages successifs. Il est construit de proche en proche, de telle sorte que chaque fois
que l'on ajoute au code un bit sur sa gauche, on recopie au-dessous de combinaisons
existantes les mêmes combinaisons, mais en les écrivant dans l'ordre opposé

Le nombre suivant exige le changement d'un seul bit


Pour trouver le nombre suivant :
si le nombre de 1 est pair, il faut inverser le dernier chiffre poids faible.
si le nombre de 1 est impair, il faut inverser le chiffre situé à gauche du 1 le plus à droite.

11

Conversion binaire vers code gray


Faire la somme des bits adjacents sans retenue de gauche à droite sur le nbr binaire
● 10010 =>( 1111 )gray
● 1 00 1 0
● 1 =>1
● 1+0 =>1
● 0+0 =>0
0+1 =>1
● 1+0 =>1

Conversion code gray vers binaire :


faire la somme des bits adjacents sans retenue de gauche à droite entre le nbr binaire et
la conversion courante.

Exemple 1010

1100
Convertir le nombre
(1010)gray =>( 1100 )2
1010
1 ( 1+0) 1 (1+1=) 0 (0+0) 0

La valeur numérique :
La valeur numérique d'un nombre binaire réfléchi s'obtient en donnant aux chiffres
successifs de droite à gauche les poids 1, 3, 7, 15, …, 2n+1–1 et en effectuant la somme des
produits non nuls, de signes alternés de gauche à droite.
Exemple :
 +15 -3 +1 = 13
 +7 =7
 +15 -1 = 14 voir le tableau ci-dessus
1110 +15 -7 +3 = 11
………………………. = 5
Exercice 06 :
1- 𝑠𝑖 x 𝑢𝑛 𝑒𝑛𝑡𝑖𝑒𝑟 𝑛𝑜𝑛 𝑠𝑖𝑔𝑛é / 𝑥 ∈ 0, 2𝑛 − 1 on a 0≤ x ≤ 2𝑛 − 1
𝑜𝑛 𝑎𝑗𝑜𝑢𝑡𝑒 1 𝑑𝑎𝑛𝑠 𝑙𝑒𝑠 𝑡𝑟𝑜𝑖𝑠 𝑐𝑜𝑡é𝑠 1 ≤ x + 1 ≤ 2𝑛
ln(1) ≤ ln(x + 1) ≤ 𝑛 ∗ ln( 2)
ln(x + 1) ≤ 𝑛 ∗ ln (2)
ln(x + 1)/ ln (2) ≤ n (i)
d’où /
n ≥ ln(1480 + 1) ln(2)
n ≥ 10.53 ⟹ 𝑛 ≅ 11
2- Le nombre de combinaisons dont les entiers non signés est toujours égale : nb =2𝑛 ⟹ 𝑛 = ln (𝑛𝑏)/ ln (2)
Donc n = ln (240) / ln (2) ⟹ 𝑛 = 7.90 ⟹ 𝑛 ≅ 8
3- Soit x un nombre de k chiffre en décimal ⟹ 𝑥 ∈ 0, 10𝑘 − 1 donc le maximum M de k chiffre M=10𝑘 − 1
on applique (i) n ≥ ln(10𝑘 ) / ln(2)
n ≥ 𝑘 ∗ ln(10) / ln(2) ⟹ 𝑛 = 𝑘 / log10(2)
4- Soit x un nombre de k chiffre en base a ⟹ 𝑥 ∈ 0, 𝑎𝑘 − 1 donc le maximum M de k chiffre M= 𝑎𝑘 − 1
Donc on applique (i) n ≥ ln(𝑎𝑘 )/ ln (𝑏) ⟹ n≥ 𝑘 ∗ ln (𝑎)/ln (𝑏)

Exercice 07 :

1- Compléter le tableau :

Nombres entiers signés


Nombres entiers
non signés SVA Cà1 Cà2
Nombres de
combinaisons 2𝑛 = 28 = 256 2𝑛 = 28 = 256 2𝑛 = 28 = 256 2𝑛 = 28 = 256
possibles
Nombres de
valeurs 2𝑛 − 1 = 28 − 1 2𝑛 − 1 = 28 − 1
2𝑛 = 28 = 256 2𝑛 = 28 = 256
possibles = 255 = 255
Intervalle 0, 2𝑛 − 1 =
− 2𝑛−1 − 1 , (2𝑛−1 − 1) − 2𝑛−1 − 1 , (2𝑛−1 − 1) − 2𝑛−1 , (2𝑛−1 − 1)
0,255
des valeurs −127, 127 −127, 127 −128, 127

2- Le bit numéro 7 est utilisé pour indiquer le signe 0 signe positif et 1 pour le signe négatif
7 6 5 4 3 2 1 0

3-
grande valeur positive d’un nombre SVA CA1 CA2
signé
Sur 8 bits 127 127 127
Sur n bits 2𝑛 −1 − 2𝑛 −1 − 2𝑛 −1 −

4- nombre SVA CA1 CA2


(FF)16 -127 -0 -1

5- 11111111 =255

6- nombre SVA CA1 CA2


(80)16 -0 -127 -128

7- FF
8- FFFF
9- Oui
10- Un bit est donc réservé au signe. Il ne reste donc que 15 bits pour faire tous les codes positifs Ce qui fait 2 15
codes différents allant de 0 à 215-1 = 32768 – 1 = 32767
Exercice 08
1-
Nombre binaire Nombres entiers Nombres entiers signés
non signés SVA Cà1 Cà2
01110 14 14 14 14
11011 27 -11 -4 -5
11111 31 -15 0 -1
1111 15 -7 0 -1
10000 16 0 -15 -16
100001 33 -1 -30 -31
111010 58 -26 -5 -6

2- Calculer en cà1 et commenter le résultat sur 6 bits :

Addition (soustraction) en C1
Elle se base sur le principe suivant :
• Si aucune retenue n’est générée par le bit de signe, le résultat est correct, et il est représenté en C1
• Sinon, elle sera enlevée et additionnée au résultat de l’opération, celui-ci est représenté en C1
1) 18+7 = +010010+000111 = sur 6bits (010010) 1 + (000111) 1 puisque les deux nombres sont positifs
alors le cà1 du nombre positif c’est le même donc il n'y a aucun changement 010010+000111= 011001 =
+(25)10 (positif + positif a donné un nombre positif donc le résultat est correct)

2) 24+10 = +011000+001010 , (011000)𝑐𝑎 1+ (001010)𝑐𝑎 1 =100010 (positif + positif a donné un nombre


négatif donc le résultat est incorrect parce que il y a un débordement )

3) -15-14 = -001111-001110,-15 = (110000) 1 -14=(110001) 1 110000 + 110001 = 1100001⟹ 100001+ 1


=100010 (si j’ai une retenue je vais l’additionner au résultat donc le résultat final en ca1 est 100110 = -
(29)10 , on remarque que le résultat est correct parce que négatif + négatif a donné un nombre négatif)
4) -26-17 = -011010 - 010001 ⟹ 𝑒𝑛 𝑐à1 100101+101110 =1010011 ⟹ 010011+1 = 010100 (si j’ai une
retenue je
vais l’additionner au résultat donc le résultat final en ca1 est 010100, on remarque que négatif + négatif a
donné un nombre positif ; donc le résultat est incorrect parce que il y a un débordement) Le résultat est
invalide lorsque les 2 nombres sont de même signe et que le résultat est de signe opposé

5) +28-5 = +011100-000101 ⟹ 𝑒𝑛 𝑐à1 011100+111010=1010110 ⟹010110+1 = 010111 = +23 (j’ai une


retenue je
vais l’additionner au résultat donc le résultat final en ca1 est 010111 si on a deux signes opposés le résultat
est toujours correct et Il n'y a aucune situation de débordement).

6) +6-31=+000110-011111 ⟹ 𝑒𝑛 𝑐à1 000110+100000=100110 en ca1 deux signes opposés le résultat est


toujours correct ca1(ca1(N))=N d’où ca1(100110)=- 011001=-25 en décimal. (si on a deux signes opposés le
résultat est toujours correct et Il n'y a aucune situation de débordement).

3-Calculer en cà2 et commenter le résultat sur 6 bits :


• Addition (soustraction) en C2
• Elle se base sur le principe suivant :
• S’il y a une retenue générée par le bit de signe, elle est ignorée et le résultat est en C2 ,
• Sinon le résultat est correct et il est représenté en C2.
1) 18+7 = +010010+000111 = sur 6bits (010010) 2 + (000111) 2 puisque les deux nombres sont positifs
alors le cà2 du nombre positif c’est le même donc il n'y a aucun changement 010010+000111=
011001 =
+(25)10 (positif + positif a donné un nombre positif donc le résultat est correct)
2) 2) 24+10 = +011000+001010 , (011000)𝑐𝑎 2+ (001010)𝑐𝑎 2 =100010 (positif + positif a donné un
nombre négatif donc le résultat est incorrect parce que il y a un débordement )
3) -15-14 = -001111-001110, ⟹ 𝑒𝑛 𝑐à2 110001 + 110010 = 1100011⟹ 100011 la retenue sera
négligée et le résultat en complément à 2 100011 = - 011101= -(29)10 , on remarque que le résultat
est correct parce que négatif + négatif a donné un nombre négatif)
4) -26-17 = -011010 - 010001 ⟹ 𝑒𝑛 𝑐à2 100110+101111 =1010101 donc le résultat final en ca2 est
010101, on remarque que négatif + négatif a donné un nombre positif ; donc le résultat est incorrect
parce que il y a un débordement) Le résultat est invalide lorsque les 2 nombres sont de même signe et
que le résultat est de signe opposé
5) +28-5 = +011100-000101 ⟹ 𝑒𝑛 𝑐à2 011100+111011=1010111 ⟹ la retenue sera négligée et le
résultat en complément à 2 est 010111 = +23 ( si on a deux signes opposés le résultat est toujours
correct et Il n'y a aucune situation de débordement).
6) +6-31=+000110-011111 ⟹ 𝑒𝑛 𝑐à2 000110+100001=100111 en ca2 deux signes opposés le résultat
est toujours correct ca2(ca2(N))=N d’où ca2(100111)=- 011001=-25 en décimal. (si on a deux signes
opposés le résultat est toujours correct et Il n'y a aucune situation de débordement).

Exercice 09 :
1-

2-

Vous aimerez peut-être aussi