Chapitre 2 : Représentation binaire des nombres entiers⚓︎
I - Dans la mémoire des ordinateurs⚓︎
▶️ Capsule : Représentation de l'information
▶️ Capsule : Unité de quantité de l'information
A savoir
La mémoire des ordinateurs est constituée d’une multitude de transistors, chacun ne pouvant être que dans deux états électriques notés 0 et 1 : la valeur 0 ou 1 d’un emplacement mémoire est appelée chiffre binaire ou un bit (abréviation de binary digit).
Depuis les années 1970, l’unité de mesure de l’espace disque ou mémoire est l’octet ou byte : un octet est constitué de 8 bits.
Le processeur d’un ordinateur échange avec la mémoire des informations (données ou adresse mémoire) composées de 4 à 8 octets en général. On parle de « mots » qui caractérisent l’architecture de la machine (32 bits ou 64 bits). Tout type d’information (nombre, caractère, couleur . . . ) doit donc être traduit sous forme de séquence de bits.
II - Différentes bases⚓︎
▶️ Capsule : Différentes bases
A savoir
La numération décimale utilise 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
Tout nombre décimal peut se décomposer selon les puissances de 10 de la base décimale.
Par exemple, le nombre 4097 représente 4 milliers, 0 centaine, 9 dizaines et 7 unités et on peut écrire :
Cette situation peut se schématiser de la façon suivante :
Dans une base \(b≥2\) quelconque, on utilise les chiffres de \(0\) à \(b-1\) et on procède exactement de la même façon mais avec des puissances de \(b\)!
Ainsi tout nombre N peut se représenter par : \(N=⋯+a_6×b^6+a_5×b^5+⋯+a_0×b^0\)
III - Convertir un entier naturel (positif)⚓︎
▶️ Capsule : Convertir un entier naturel en binaire
A savoir
1. La numérotation binaire⚓︎
Il est facile de compter en base 10 (décimal). La numération décimale utilise 10 chiffres : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
Avec ces derniers, on peut compter jusqu'à 9 en ajoutant 1. Au-delà de 9, il faut changer de rang : le rang des unités est plein, on met 1 à celui des dizaines et on recommence à 0 pour les unités. On procède de même pour les centaines, les milliers et ainsi de suite.
La numération binaire utilise 2 chiffres : 0 et 1. Pour compter en binaire, on fait comme en décimal mais avec la limite de ces deux chiffres :
2. Déterminer le nombre de bits nécessaires pour réaliser la conversion⚓︎
Afin déterminer le nombre de bits nécessaires pour convertir un entier de la base 10 vers la base 2 il suffit de prendre la puissance de 2 immédiatement supérieure au nombre décimal à convertir. On donne ci-dessous le tableau des 11 premières puissances de 2
Exemple : Pour convertir \((54)_{10}\) en binaire il faut donc 6 bits car \(2^6=64≥54\)
En règle générale, quand on choisit de coder un entier sur n bits, il est possible de coder \(2^n\) valeurs comprises entre \(0\) et \(2^n-1\)
Exemple : Sur 6 bits on peut coder \(2^6=64\) valeurs comprises entre \(0\) et \(63\).
3. Convertir un entier naturel de la base 2 vers la base 10⚓︎
Méthode des puissances de 10⚓︎
- On trouve la plus grande puissance de 2 inférieure ou égale au nombre décimal à convertir.
- On met 1 dans la colonne de cette puissance
- On enlève cette puissance au nombre à convertir.
- On recommence avec le reste
- A la fin on met des 0 dans les puissances non utilisées
Exemple : conversion de \((54)_{10}\)
Puissance de 2 | Reste | |
---|---|---|
\(2^5=32<=54\) | 1 en colonne \(2^5\) | \(54-32=22\) |
\(2^4=16<=22\) | 1 en colonne \(2^4\) | \(22-16=6\) |
\(2^2=4<=6\) | 1 en colonne \(2^2\) | \(6-4=2\) |
\(2^1=2<=2\) | 1 en colonne \(2^1\) | \(2-2=0\) |
Donc \((54)_{10}=(32+16+4+2)_{10}=(110110)_{2}\)
Méthode de la division successive⚓︎
On pose la série de divisions avec reste et on obtient la valeur binaire en concaténant les restes obtenus du dernier au premier.
Donc \((54)_{10}=(110110)_{2}\)
4. Convertir un nombre binaire de la base 2 vers la base 10.⚓︎
Les chiffres de l'écriture décimale représentent des puissances de 10 et de la même façon, les chiffres de l'écriture binaire représentent des puissances de 2.
Exemple : pour la conversion de \((110110)_2\) on réutilise le tableau des puissances de 2.
IV- Convertir un entier relatif (positif ou négatif)⚓︎
▶️ Capsule : Convertir un entier relatif en binaire
▶️ Capsule : Convertir un entier relatif en binaire 2
A savoir
1. Coder sur n bits⚓︎
Pour convertir un nombre relatif, il faut au préalable définir le nombre de bits sur lequel on souhaite travailler. En règle générale, quand on choisit de coder sur n bits, il est possible de coder \(2^n\) valeurs comprises entre \(2^{n-1}\) et \(2^{n-1}-1\)
Exemple : Sur 6 bits on peut coder \(2^6=64\) valeurs comprises entre \(-2^{6-1}=-32\) et \(2^{6-1}-1=+31\)
2. Conversion de la base 10 vers la base 2⚓︎
Sur n bits, les entiers positifs sont codés comme précédemment, mais on remplit les bits non utilisés avec des 0. Les nombres négatifs sont obtenus en utilisant la méthode du complément à 2. Pour obtenir le complément à deux d’un entier sur 8 bits on peut suivre les étapes suivantes (la méthode est généralisable à n bits) :
- Le signe d’un entier est donné par le bit de poids fort : le nombre est positif ou nul lorsque le bit de poids fort vaut 0 et négatif si il vaut 1.
- La méthode du complément à 2 évite d’avoir deux algorithmes distincts pour l’addition et la soustraction. Cela se traduit par une réduction du nombre de transistor nécessaires en machine et une simplification des circuits.
- On note un entier coverti par cette méthode avec l’indice c2
3. Conversion de la base 2 vers la base 10⚓︎
Pour convertir en décimal un nombre négatif codé en complément à 2 en binaire, on procède comme s’il était codé en binaire, en multipliant par -1 le terme correspondant au bit de poids fort.
Exemple : Conversion de \((10101010)_{c2}\) en décimal
Pour convertir un nombre positif codé en complément à 2 la méthode est la même que pour les naturels.
## V- Opérations en binaire