Cours 201-G1A-Mo
Cours 2 : Nombres, bases et conversions
Dans ce module, nous allons voir comment les nombres sont représentés à l’intérieur d’un ordinateur. Il s’agit d’un sujet
important en informatique car les limites sur la représentation des nombres peuvent mener à divers bugs.
Essentiellement, chaque information doit être stockée en utilisant une quantité de mémoire déterminée. Les problèmes
surviennent lorsqu’une information a besoin de plus d’espace pour être stockée. Les notions que nous allons voir vont
notamment permettre de comprendre comment l’addition de 2 grands nombres entiers positifs peut retourner un
nombre négatif ou encore pourquoi des opérations sur les nombres réels ne donnent pas exactement le résultat attendu.
Pour comprendre ces représentations, nous aurons besoin de divers outils. Il faudra d’abord comprendre ce qu’est un
nombre et ce qu’est une base.
Pensez au nombre de doigts dans une main. Cette quantité unique peut être représentée ainsi : Bas binaire (2)
Bas décimal(10)
0
• Cinq (littéraire) 0
1
1
(10)
• 5 (chiffres arabes) 2
(11)
²
3 ²
• 30/6 (fraction) 4
100
101
• V (chiffres romains) 5
110
6
• 101 (binaire) 7
111
1000
8
1001
9
1010
10
Distinction entre nombre et chiffre : Le nombre est la quantité représentée tandis que les chiffres sont chacun des
symboles utilisés pour représentés le nombre. On utilise très souvent le mot « chiffre » pour désigner un nombre. C’est
une erreur. Évidemment, pour chaque chiffre, il y a un nombre correspondant. On peut présumer que la confusion vient
de là.
7.1 Système positionnel
On utilise un système positionnel pour représenter les nombres. La position d’un chiffre dans un nombre indique la
quantité que le chiffre représente
Exemple 7.1 :
Dans le nombre 252, le « 2 » le plus à gauche représente la valeur 200, tandis que le « 2 » à droite représente la valeur 2.
Une base désigne la valeur dont les puissances successives interviennent dans l’écriture des nombres.
Le chiffre à chaque position représente la multiplicité de la puissance de la base associée à cette position.
Dans vos vies jusqu’à maintenant, les nombres étaient toujours représentés sous la base 10. Dans l’exemple précédent du
nombre 252, le « 2 » le plus à gauche est à la position des centaines. Ça représente 2 fois 100. Le « 5 » est à la position des
dizaines. Ça représente 5 fois 10. Le « 2 » le plus à droite est à la position des unités. Ça représente 2 fois 1. On peut
remarquer que 100 = 102 , 10 = 101 et 1 = 100 .
Exemple 7.2 :
Pour le nombre 7572 :
• Le premier 7 vaut 7000
• Le 5 vaut 500
• Le second 7 vaut 70
• Le 2 vaut 2
Cours 201-G1A-Mo
7572 = 7000 + 500 + 70 + 2
= 7 × 1000 + 5 × 100 + 7 × 10 + 2 × 1
= 7 × 103 + 5 × 102 + 7 × 101 + 2 × 100
Le principe est rigoureusement le même quand on utilise une autre base que la base 10 pour représenter les nombres.
Avant d’aller plus loin, faisons un bref rappel sur ce qu’est un exposant.
7.3 Base et conversion en base 10
À la section 7.1, nous avons vu comment o interprète les nombres en base 10. Comme détaillé dans l’exemple 7.2, le
nombre 7572 s’interprète comme 7 × 103 + 5 × 102 + 7 × 101 + 2 × 100 . Puisque les nombres sont stockés sous forme
binaire (base 2) dans un ordinateur, il est très important de comprendre comment fonctionne les bases autre que la base
10 et comment effectuer des conversion (passer de la base 10 à une base quelconque ainsi que de passer d’une base
quelconque à la base 10)
Système Base Chiffres utilisés Nombre de chiffres utilisés
Décimal Dix 0,1,2,3,4,5,6,7,8,9 Dix
Binaire Deux 0,1 Deux
Octal Huit 0,1,2,3,4,5,6,7 Huit
Hexadécimal Seize 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Seize
Le nombre de chiffres dépend de la base. En base 10, on a 10 chiffres, en base 2 on a 2 chiffres, en base 16 on a 16 chiffres,
etc.
Pour éviter la confusion, on notera la base utilisée pour écrire un nombre en l’écrivant en indice. Si rien n’est écrit en
indice ou spécifié dans le contexte autour, on prendra pour acquis que c’est la base 10 qui est utilisée.
Exemple 7.3 :
(125)8 𝑒𝑠𝑡 𝑒𝑛 𝑏𝑎𝑠𝑒 8
(101)2 𝑒𝑠𝑡 𝑒𝑛 𝑏𝑎𝑠𝑒 2
Ici, le nombre (125)8 doit s’interpréter comment étant 1 × 82 + 2 × 81 + 5 × 80
7.3.1 Conversion vers la base 10
Voici la procédure pour faire la conversion d’un nombre dans une base quelconque à la base 10 :
On fait la somme de chaque chiffre fois la base exposant la position du chiffre.
Exemple 7.4 :
Soit le nombre (2354713)8
Chiffres 2 3 5 4 7 1 3
Position 6 5 4 3 2 1 0
Donc pour faire la conversion, on fait : 2 × 86 + 3 × 85 + 5 × 84 + 4 × 83 + 7 × 82 + 1 × 81 + 3 × 80 = 645579
7.3.2 Binaire
Notons qu’en binaire, les seuls chiffres utilisables dans la représentation d’un nombre sont 0 et 1.
Cours 201-G1A-Mo
Si on souhaite connaître la valeur représentée par un nombre écrit en binaire, on procédera de la même façon qu’en
décimal:
(100110)2 = 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 32 + 4 + 2 = 38.
Dans un ordinateur, les informations sont entreposées dans des octets. Un octet est un groupe de 8 bits. Un bit est un
chiffre en binaire (binary digit), donc un « 0 » ou un « 1 ».
Il est donc très important en informatique de comprendre comment le binaire fonctionne pour connaître, entre autres,
les limites des types de base dans un langage de programmation, détecter les débordements ou comprendre les
informations fournies par un débogueur.
Exercice 7.1 :
247= (...)base de 5
Que vaut le nombre binaire (10111)2 en base 10 ? 247= 1x125+ 4x25 + 22
= 1x5^3 + 4x5^2 + 4x5^1 +2x5^0
1x2^4 + 0x2³ + 1x2² + 1x2^1 + 1x2^0 = 23
=(1442) en base de 5
7.3.3 Octal et hexadécimal
En octal, les chiffres utilisables pour représenter un nombre sont 0, 1, 2, 3, 4, 5, 6 et 7.
Le principe est toujours le même:
(1276)8 = 1 × 83 + 2 × 82 + 7 × 81 + 6 × 80 = 512 + 128 + 56 + 6 = 702
En base 16, les chiffres sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (pour avoir la valeur 10 sur une seule position), B (pour 11), C
(pour 12), D (pour 13), E (pour 14) et F (pour 15).
Pour connaître la valeur d’un nombre hexadécimal, on fait la même chose que dans une autre base:
(12𝐴4)16 = 1 × 163 + 2 × 162 + 10 × 161 + 4 × 160 = 4096 + 512 + 160 + 4 = 4772
Exercice 7.2 :
Que vaut le nombre (2𝐴7𝐹)16 en base 10?
=2x16³ + 10x16² + 7x16^1 + 15x16^0= 10879
Exercice 7.3 :
Déterminer la valeur des nombres suivants en base 10
a) (234)8 153
Cours 201-G1A-Mo
b) (11011)2 1x2^4 + 1x2^3 +0 + 1x2^1 +1=27
c) (𝐴𝐵32)12 10x12^3 + 11x12^2 + 3x12^1+ 2= 18902
Exercice 7.4 :
Indiquer lequel des deux nombres est le plus grand parmi les paires ci-dessous
a) (1011)2 (1011)8
b) (100)16 (200)10
7.4 Conversion vers une base quelconque
Pour convertir un nombre de la base 10 à une autre base (comme en binaire par exemple), il faut un petit peu plus de
travail
Il existe plusieurs méthodes dont par exemple:
• On peut soit essayer de trouver la somme des puissances de la base voulue qui donne ce nombre
• On peut appliquer un algorithme de divisions successives
7.4.1 Somme de puissance
À la section 7.3.2, nous avions l’exemple suivant.
(100110)2 = 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 1 × 21 + 0 × 20 = 32 + 4 + 2 = 38
Pour passer de 38 à 100110, on doit connaître les coefficients des puissances de 2. Ici nous avons
Puissance de 2 25 = 32 24 = 16 23 = 8 22 = 4 21 = 2 20 = 1
Coefficient 1 0 0 1 1 0
Supposons que l’on veuille convertir 193 en binaire. Selon ce qu’on a vu précédemment, on doit déterminer les 𝑥𝑖 tel
que:
193 = 𝑥7 × 27 + 𝑥6 × 26 + 𝑥5 × 25 + 𝑥4 × 24 + 𝑥3 × 23 + 𝑥2 × 22 + 𝑥1 × 21 + 𝑥0 × 20
Puisqu’on cherche à convertir en binaire, les 𝑥𝑖 peuvent prendre soit 0, soit 1 comme valeur.
Processus : on trouve la plus grande puissance de 2 présente dans 193, que l’on soustrait de ce nombre et on recommence
avec le résultat obtenu jusqu’à ce qu’on arrive à 0:
• La plus grande puissance de deux inférieure ou égale à 193 est 128 (27 ) : 193 − 128 = 65.
Cours 201-G1A-Mo
• La plus grande puissance de deux inférieure ou égale à 65 est 64 (26 ) : 65 – 64 = 1
• La plus grande puissance de deux inférieure ou égale à 1 est 1 (20 ): 1−1=0 On
arrête
• Donc 193 = 1 × 27 + 1 × 26 + 0 × 25 + 0 × 24 + … + 1 × 20 = (11000001)2
Exemple 7.5 :
En utilisant la méthode des sommes de puissances, convertissons le nombre 612 en binaire.
Voici les différentes puissances de 2 :
n 0 1 2 3 4 5 6 7 8 9 10
𝑛
2 1 2 4 8 16 32 64 128 256 512 1024
Appliquons maintenant la méthode :
• 612 − 512 = 100
• 100 − 64 = 36
• 36 − 32 = 4
• 4−4=0 On
Nous avons donc que arrête 612 = 512 + 64 + 32 + 4. Et donc :
612 = 1 × 29 + 0 × 28 + 0 × 27 + 1 × 26 + 1 × 25 + 0 × 24 + 0 × 23 + 1 × 22 + 0 × 21 + 0 × 20 = (1001100100)2
La méthode de la somme puissance est simple et rapide lorsqu’on veut convertir en binaire. Par contre, elle est moins
facile d’utilisation pour une autre base. Reprenons l’exemple de 193, mais cette fois-ci on veut le convertir en octal (base
8). En octal, les coefficients multipliant les puissances de 8 prennent des valeurs entre 0 et 7.
Il faudra donc déterminer quel est le plus grand produit de puissance de 8 inférieur ou égal à 193.
Les puissances de 8 sont : 1, 8, 64, 512, … Comme 193 < 512, on sait que la plus grande puissance contenue sera 64. Il
faut ensuite regarder tous les produits de 1 à 7 avec 64 :
64, 128, 192, 256, 320, 384, 448
On a que 3 × 64 = 192 est le plus grand produit de puissance de 8 inférieur ou égal à 193 : 193 − 192 = 1
Le plus grand produit de puissance de 8 inférieur ou égal à 1 est 1 : 1−1=0
On a donc 193 = 3 × 82 + 1 × 80 = (301)8
Exemple 7.6 :
En utilisant la méthode des sommes de puissances, convertissons le nombre 1234 en hexadécimal.
Voici les différentes puissances de 16 :
n 0 1 2 3 4 5 6
𝑛
16 1 16 256 4096 65536 1048576 16777216
Appliquons maintenant la méthode :
• 1234 − 4 × 256 = 210
• 210 − 13 × 16 = 2
• 2−2×1=0 On
On a donc que 1234 = 4 × arrête 162 + 13 × 161 + 2 × 160 = (4𝐷2)16
Cours 201-G1A-Mo
7.5 Astuce de conversion de binaire à octal et hexadécimal
Il existe un lien entre le binaire, l’octal et l’hexadécimal. On peut en effet remarquer que 8 (octal) est une puissance de 2
(c’est 2 exposant 3) et que 16 (hexadécimal) est aussi une puissance de 2 (c’est 2 exposant 4). Voici donc une méthode
rapide de conversion pour passer d’hexadécimal en binaire directement et vice-versa :
Pour convertir un nombre de la représentation hexadécimale en représentation binaire, il suffit de convertir chaque chiffre
hexadécimal en 4 chiffres binaires sans tenir compte des autres (on ajoute des 0 à l’avant si on obtient pas 4 bits)
Exemple 7.12 :
Convertissons (15𝐴0)16 en binaire. Puisque
(1)16 = (0001)2 ; (5)16 = (0101)2 ; (𝐴)16 = (1010)2 ; (0)16 = (0000)2
On obtient (15𝐴0)16 = (0001 0101 1010 0000)2
Le principe est semblable dans l’autre sens; si on veut convertir un nombre de la représentation binaire en représentation
hexadécimale, il suffit de diviser en paquet de 4 bits et de déterminer la valeur de chaque paquet.
Exemple 7.13 :
Convertissons (1101001101)2 en hexadécimal. On doit d’abord séparer en paquet de 4 bits (on complète avec des 0
s’il en manque au dernier paquet le plus à gauche) :
0011 0100 1101
Ensuite, on a que :
(0011)2 = 3 ; (0100)2 = 4 ; (1101)2 = 13
On obtient (1101001101)2 = (34𝐷)16
Le principe est le même dans les deux cas pour l’octal sauf qu’on travail en paquet de 3 à la place.
Exemple 7.14 :
Convertissons (2701)8 en binaire. Puisque
(2)8 = (010)2 ; (7)8 = (111)2 ; (0)8 = (000)2 ; (1)8 = (001)2
On obtient (2701)8 = (010 111 000 001)2
Cours 201-G1A-Mo
7.6 Exercices Cours 7
#1 Indiquer si les nombres suivants existent ou non
a. (1002)2
b. (1002)3
c. (23411)5
d. (23415)5
e. (62321)4
f. (122204)16
g. (1𝐴322)12
#2 Soit le nombre suivant dont la base est inférieur ou égale à 10 mais est inconnue. Quelle(s) sont le(s) base(s) possible(s) pour ce
nombre ?
(406)?
#3 Convertir les nombres suivants en base 10
a. (101110011)2
b. (101110011)3
c. (13157)8
d. (53678)9
e. (2𝐴𝐵9)12
f. (2𝐴𝐵9)16
#4 Convertir les nombres (qui sont en base 10) à la base spécifiée
a. 432 en base 2 =2^8 + 2^7 +2^5+2^4=110110000
b. 2355 en base 6 =6^4+ 4x6^3 + 5x6^2 + 2x6^1 +3
c. 3589 en base 8
d. 69922 en base 16
e. 5143 en base 12
#5 Convertir les nombres hexadécimaux suivants en binaire (sans passer par la base 10)
a. (𝐴39)16
b. (𝐸𝐷87)16
c. (10111)16
#6 Convertir les nombres binaires suivants en octal (sans passer par la base 10)
a. (100011101)2
b. (1011111)2
c. (10100001)2
Cours 201-G1A-Mo
Cours 2: Opérations en différentes bases
Afin de bien comprendre comment les opérations s’effectuent à l’intérieur d’un ordinateur, il est important de
comprendre comment on effectue une opération comme l’addition ou la multiplication avec des nombres représentés
dans d’autres bases que la base 10. Le principe est très similaire d’une base à l’autre. Nous allons donc commencer par
faire un rappel sur comment ces opérations se font en base 10 et nous allons ensuite transposer ces méthodes pour les
appliquer à d’autres bases.
Pour bien comprendre ce qui suit, il est extrêmement important de bien maîtriser les conversions de nombre et de bien
comprendre les représentations des nombres en différentes bases.
8.1 Addition
On additionne les nombres en colonnes à partir des unités (la colonne de droite) et on reporte sur la colonne à gauche de
la colonne en cours lorsque le résultat est plus grand que le dernier chiffre de la base.
1 1
2 9 4
4+9 = 13.
+ 8 9 Comme 13 > 9, il y a un report dans la colonne
suivante
3 8 3
Notons ici qu’il y a report lorsque le résultat est plus grand que 9 et que 9 est le plus grand chiffre possible en base 10.
Les opérations arithmétiques habituelles se font de la même manière dans une autre base que dans la base 10. Dans le
cas de l’addition, la seule chose à laquelle il faut faire attention est de veiller à ce que le report soit exprimé dans la base.
En base 8 par exemple, il y a report lorsque le résultat est plus grand que 7 (puisque 7 est le plus grand chiffre possible en
base 8)
Regardons quelques exemples d’addition sur un chiffre.
Exemple 8.1 :
1. Quel est le résultat de (1)2 + (1)2 ?
• Si on converti en base 10, ça donne 2 et (2)10 = (10)2 .
• D’où (1)2 + (1)2 = (10)2
2. Quel est le résultat de (8)16 + (5)16
• Si on converti en base 10, ça donne 13 et (13)10 = (𝐷)16
• D’où (8)16 + (5)16 = (𝐷)16
3. (𝐵)16 + (5)16 = 11 + 5 = 16 = (10)16
4. (6)8 + (7)8 = 6 + 7 = 13 = (15)8
Voici une astuce de calcul rapide. Lorsque le résultat dépasse le plus grand chiffre de la base, on peut exprimer le résultat
comme étant « la base plus quoi ». Par exemple, en base 6 si on fait 4 + 3 ce qui donne 7 en base 10, on peut écrire 7 =
6 + 1. Comme 6 est le base, on a que 6 = (10)6 donc (4)6 + (3)6 = 7 = 6 + 1 = (10)6 + (1)6 = (11)6
Exercice 8.1 :
Donner le résultat des additions suivantes :
Cours 201-G1A-Mo
a) (4)8 + (6)8 =
b) (𝐴)16 + (4)16 =
c) (7)16 + (𝐷)16 =
d) (9)12 + (9)12 =
e) (3)4 + (2)4 =
Nous sommes maintenant prêts à faire une addition sur plusieurs chiffres.
Exemple 8.2 :
Voici une addition en binaire :
Voici une addition en octal :
Voici une addition en hexadécimal :
Note : En additionnant plusieurs nombres binaires, il est probable que le report se fasse plus d’une colonne plus « loin »
comme l’illustre l’exemple 8.3 ci-dessous
Exemple 8.3 :
Si on veut faire la somme suivante : (1)2 + (1)2 + (1)2 + (1)2 + (1)2 = 5, en binaire on a 5 = (101)2 . Dans une
addition sur plusieurs chiffres, le report sera 2 colonnes plus loin au lieu d’une.
Exercice 8.2 :
Effectuer les additions suivantes
a) (1011101)2 + (101110)2
Cours 201-G1A-Mo
b) (735)8 + (361)8
c) (𝐶𝐵4)16 + (35𝐸)16
d) (253)6 + (142)6
e) (101101)2 + (11011)2 + (1111)2
Cours 201-G1A-Mo
8.2 Soustraction
Lorsqu’on fait une soustraction en base 10 sur plusieurs chiffres, si le chiffre à soustraire est plus grand que le chiffre
duquel on soustrait, il faut « emprunter » une dizaine dans la colonne d’à côté. Par exemple, 37 − 19 comme 9 (le chiffre
à soustraire) est plus grand que 7 (le chiffre duquel on soustrait), on « emprunte » une dizaine à 3. Ça devient donc 17 −
9 = 8 pour la première colonne et la 2e colonne devient 2 − 1 = 1. Le résultat de la soustraction est 18.
Exemple 8.4 :
1 15
2 6 14
- 1 7 8
0 8 6
Lorsqu’on soustrait dans une base autre que 10, on doit procéder comme en base 10, c’est-à-dire que si on doit
« emprunter » à la colonne de gauche, on doit considérer la base: on emprunte une dizaine, une paire, une huitaine, une
seizaine …
Exemple 8.5 :
Voici une soustraction en binaire :
0 10
1 1 10 1 1
- 1 1 1 0
1 1 0 1
Voici une soustraction en hexadécimal :
8 12
E 9 3 1A
- 8 2 8 C
6 6 A E
Notez bien que (1𝐴)16 = 26. Donc (1𝐴)16 − (𝐶)16 = 26 − 12 = 14 = (𝐸)16 . Similairement, pour la 2e colonne,
(12)16 = 18. Donc (12)16 − (8)16 = 18 − 8 = 10 = (𝐴)16
Exercice 8.3 :
Effectuer les soustractions suivantes :
a) (214)8 − (176)8
b) (1011001)2 − (10101)2
Cours 201-G1A-Mo
8.3 Multiplication
La multiplication est un peu moins intuitive que l’addition ou la multiplication. Comme pour les autres opérations,
commençons par se rappeler comme ça fonctionne en base 10. Si on veut faire 714 × 63, on fait d’abord 714 × 3 et
ensuite 714 × 60 et on additionne les deux résultats :
2
1
7 1 4
x 6 3
2 1 4 2
4 2 8 4 0
4 4 9 8 2
Dans d’autres bases, encore une fois, l’algorithme est strictement le même qu’en base 10, il faut seulement faire la
conversion dans la bonne base à chaque étape du calcul et c’est cette conversion-là qui est un peu moins évidente. Voici
quelques exemples en hexadécimal sur 1 chiffre
Exemple 8.6 :
1. (9)16 × (6)16 = 54 = 3 × 16 + 6 = (36)16
2. (𝐵)16 × (𝐷)16 = 11 × 13 = 143 = 8 × 16 + 15 = (8𝐹)16
Ces exemples illustrent bien les difficultés rencontrées lors de la multiplication; il n’est pas facile de faire le transfert vers
la base voulue. Cependant, une bonne maîtrise de l’algorithme des divisions successives pour la conversion de nombre
peut permettre de faire le constat suivant : lorsqu’on prend le résultat en base 10, il suffit d’en trouver le quotient et le
modulo avec la base. Si on regarde l’exemple 8.6, dans le premier cas, le quotient de 54 avec 16 est 3 et 54 modulo 16 est
6. Similairement, le quotient de 143 avec 16 est 8 et 143 modulo 16 est 15.
Exercice 8.4 :
Effectuer les multiplications suivantes dans la base indiquée
a) (6)8 × (2)8 =
b) (8)16 × (𝐸)16 =
c) (𝐴)12 × (5)12 =
Voici donc comment nous procéderons pour une multiplication sur plusieurs chiffres dans une base autre que 10 : On
multiplie un chiffre à la fois. Le quotient du résultat avec la base est le report et le modulo du résultat avec la base est ce
qu’on consigne sous la ligne.
Exemple 8.7 :
Voici une multiplication en base 8 :
Cours 201-G1A-Mo
4 1
5 2
4 7 3
x 5 6
3 5 4 2
3 0 4 7 0
3 4 2 3 2
Exemple 8.8 :
Exemple 8.9 :
Exercice 8.5 :
Effectuer les multiplications suivantes dans la base indiquée
a) (10110101)2 × (1101)2
Cours 201-G1A-Mo
b) (𝐴972)12 × (25)12
c) (762)8 × (315)8
Cours 201-G1A-Mo
8.4 Exercices Cours 8
#1 Effectuer les additions suivantes dans les bases spécifiées
a. (101110)2 + (1001)2
b. (5470)8 + (233)8
c. (𝐴23𝐹)16 + (𝐷31)16
d. (2341)5 + (3124)5
#2 Effectuer les soustractions suivantes dans les bases spécifiées
a. (101110)2 − (1001)2
b. (5470)8 − (233)8
c. (𝐴23𝐹)16 − (𝐷31)16
d. (2341)5 − (3124)5
#3 Effectuer les multiplications suivantes dans les bases spécifiées
a. (101110)2 × (1001)2
b. (321)8 × (17)8
c. (𝐴21)16 × (2𝐵)16
(2341)5 × (31)5