Système de numération et représentations binaires
Cette leçon couvre les systèmes de numération et les différentes représentations binaires utilisées en informatique. Elle s'inscrit dans un cours d'introduction aux systèmes logiques et numériques, en expliquant les bases des codages numériques, les conversions entre bases, ainsi que les codes spécifiques comme le code Gray, le BCD, ASCII et Unicode.
D'après le document Système de numération et représentations binaires
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Digital Systems and Number Systems · PDF · 22 pages · 1953
Afficher l'aperçu du document
Cette leçon couvre les systèmes de numération et les différentes représentations binaires utilisées en informatique. Elle s'inscrit dans un cours d'introduction aux systèmes logiques et numériques, en expliquant les bases des codages numériques, les conversions entre bases, ainsi que les codes spécifiques comme le code Gray, le BCD, ASCII et Unicode. Enfin, elle aborde la représentation des nombres entiers signés et les opérations arithmétiques associées.
Système de numération : définitions et principes fondamentaux
Un système de numération permet de coder une information en associant un ou plusieurs symboles pour la représenter et la communiquer. La représentation d’un nombre correspond à la manière de le décrire dans une base donnée, comme décimal, binaire, octal, etc. Chaque nombre est composé de digits (chiffres) et de poids (positions).
La base d’un système de numération, notée b, correspond au nombre de symboles utilisés pour représenter un nombre. Par exemple :
- b = 2 : système binaire (chiffres 0 et 1)
- b = 8 : système octal (chiffres de 0 à 7)
- b = 10 : système décimal (chiffres de 0 à 9)
- b = 16 : système hexadécimal (chiffres de 0 à 9 et lettres A à F)
Le digit représente l’un des chiffres autorisés dans la base. Par exemple, dans la base décimale, les digits sont {0,1,…,9}. Le poids correspond à la position du digit dans le nombre, avec un poids fort à gauche et un poids faible à droite.
Représentation d’un nombre dans un système de numération
Un nombre est représenté par la somme de ses digits multipliés par leur poids respectifs. Cette écriture est appelée forme polynomiale :
n = a0 * b^0 + a1 * b^1 + a2 * b^2 + … + ap * b^p
où chaque a_i est un digit et b la base du système.
Système décimal (base 10)
Le système décimal utilise 10 symboles (0 à 9). Par exemple, le nombre 1051 s’écrit :
1051 = 1*10^3 + 0*10^2 + 5*10^1 + 1*10^0
Un nombre réel peut aussi s’écrire en forme polynomiale avec des puissances négatives :
143,25 = 1*10^2 + 4*10^1 + 3*10^0 + 2*10^-1 + 5*10^-2
Système binaire (base 2)
Le système binaire utilise uniquement les chiffres 0 et 1. Par exemple :
(1101)_2 = 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 = 1 + 0 + 4 + 8 = (13)_{10}
Un nombre binaire s’écrit souvent sous la forme d’un mot binaire, par exemple (b7 b6 b5 b4 b3 b2 b1 b0)_2, où b7 est le bit de poids fort (MSB) et b0 le bit de poids faible (LSB).
Système octal (base 8)
Le système octal utilise les chiffres de 0 à 7. Par exemple :
(637)_8 = 7*8^0 + 3*8^1 + 6*8^2 = 7 + 24 + 384 = (415)_{10}
Système hexadécimal (base 16)
Le système hexadécimal utilise les chiffres 0 à 9 et les lettres A à F (A=10, B=11, ..., F=15). Par exemple :
(B20)_{16} = 0*16^0 + 2*16^1 + 11*16^2 = 0 + 32 + 2816 = (2848)_{10}
Conversion entre bases
Conversion d’un nombre décimal vers une autre base
Pour convertir un nombre décimal N en base b, on effectue des divisions euclidiennes successives par b. Les restes des divisions, lus dans l’ordre inverse, donnent les digits du nombre dans la base b.
Exemple : convertir (35)_{10} en binaire :
35 ÷ 2 = 17 reste 1 17 ÷ 2 = 8 reste 1 8 ÷ 2 = 4 reste 0 4 ÷ 2 = 2 reste 0 2 ÷ 2 = 1 reste 0 1 ÷ 2 = 0 reste 1
Lecture des restes de bas en haut : (100011)_2
Conversion d’un nombre réel
Un nombre réel est composé d’une partie entière et d’une partie fractionnelle. La partie entière est convertie par divisions successives, tandis que la partie fractionnelle est convertie par multiplications successives par la base.
Exemple : 35,625 = (100011,101)_2
Conversion entre bases binaire, octale et hexadécimale
Pour convertir un nombre binaire en octal, on regroupe les bits par groupes de 3 (de droite à gauche pour la partie entière, de gauche à droite pour la partie fractionnaire) et on traduit chaque groupe en chiffre octal.
Exemple :
- (1100101)_2 = (145)_8
- (1100101)_2 = (65)_{16} (regroupement par 4 bits pour l’hexadécimal)
Inversement, pour passer d’un code octal ou hexadécimal au binaire, chaque chiffre est converti en binaire sur 3 bits (octal) ou 4 bits (hexadécimal).
Exemple :
- (275,15)_8 = (010 111 101 , 001 101)_2
- (FA,B)_{16} = (1111 1010 , 1011)_2
Codes binaires spécifiques
Code binaire réfléchi ou code Gray
Le code Gray est un code binaire où un seul bit change lorsqu’on passe d’un mot binaire à un mot adjacent. Cela évite les erreurs transitoires lors des changements d’état, par exemple dans les capteurs de position.
Le code Gray est obtenu à partir du code binaire naturel en comparant les bits successifs :
- Le bit de poids fort du Gray est identique à celui du binaire naturel.
- Pour chaque bit suivant, si les bits Bj+1 et Bj du binaire naturel sont égaux, alors Gj = 0 ; sinon Gj = 1.
Exemple :
- (1101)_2 = (1011)_{Gray}
- (10001)_2 = (11001)_{Gray}
Pour convertir un code Gray en binaire naturel :
- Le premier bit binaire est égal au premier bit Gray.
- Pour chaque bit suivant, si Bj+1 naturel = Gj Gray alors Bj naturel = 0, sinon Bj naturel = 1.
Exemple :
- (1101)_{Gray} = (1001)_2
- (10111)_{Gray} = (11010)_2
Code BCD (Binary Coded Decimal)
Le code BCD est utilisé pour représenter chaque chiffre décimal par un groupe de 4 bits. Il est souvent employé dans les systèmes d’affichage numériques simples, comme les calculatrices.
Exemples :
- (325)_{10} = (0011 0010 0101)_{BCD}
- (827)_{10} = (1000 0010 0111)_{BCD}
Code ASCII
Le code ASCII (American Standard Code for Information Interchange) est un standard de codage des caractères sur 7 bits, permettant de représenter 128 caractères, principalement pour la langue anglaise, sans accents ni caractères spécifiques.
Il a été étendu à 8 bits (un octet) pour coder 256 caractères, incluant des symboles supplémentaires.
Code Unicode
Le code Unicode est un système de codage des caractères sur 16 bits, permettant de représenter la quasi-totalité des alphabets existants (arabe, arménien, cyrillique, grec, hébreu, latin, etc.) et est compatible avec le code ASCII.
Représentation des nombres entiers signés
Il existe deux types d’entiers :
- Les entiers non signés (positifs uniquement)
- Les entiers signés (positifs ou négatifs)
Pour indiquer le signe d’un nombre, trois méthodes principales sont utilisées :
- Signe / valeur absolue (S/VA)
- Complément à un (complément restreint)
- Complément à deux (complément à vrai)
Représentation signe/valeur absolue (S/VA)
Sur n bits, le bit de poids fort indique le signe : 0 pour positif, 1 pour négatif. Les n-1 bits restants représentent la valeur absolue.
Exemple avec 4 bits :
- 1001 représente -1
- 0001 représente +1
Cette méthode est simple mais présente un inconvénient majeur : le zéro a deux représentations (+0 et -0), ce qui complique les opérations arithmétiques.
Représentation en complément à un (CA1)
Le complément à un d’un nombre N sur n bits est défini par :
N' = (2^n - 1) - N
Pour obtenir le complément à un, il suffit d’inverser tous les bits (0 devient 1 et 1 devient 0).
Exemple sur 4 bits :
- Complément à un de 1010 est 0101
Le bit de poids fort indique le signe (0 positif, 1 négatif). Le complément à un du complément à un d’un nombre est le nombre lui-même :
CA1(CA1(N)) = N
Exemple : la valeur 101010 en CA1 sur 6 bits représente :
- Bit de poids fort = 1 donc nombre négatif
- Valeur = - CA1(101010) = - (010101)_2 = -21_{10}
Représentation en complément à deux (CA2)
Le complément à deux d’un nombre est défini par :
CA2(a) = CA1(a) + 1
Pour calculer le complément à deux, on parcourt les bits du poids faible vers le poids fort, on garde tous les bits avant le premier 1, puis on inverse les bits suivants.
Exemple :
Nombre : 0 1 0 0 0 1 0 1 Complément à un : 1 0 1 1 1 0 1 0 Complément à deux : 1 0 1 1 1 0 1 1
Si le nombre est positif, sa grandeur est la valeur binaire exacte avec un bit de signe 0. Si le nombre est négatif, sa grandeur est le complément à deux de la valeur absolue avec un bit de signe 1.
Exemple :
- +45_{10} = (0101101)_2
- Complément à un de 45 = (010010)_2
- Complément à deux de 45 = (010011)_2
- -45_{10} = (1010011)_2
La représentation en complément à deux est la plus utilisée pour représenter les nombres négatifs en machine. L’opération de soustraction s’effectue par addition du complément à deux :
X = A - B = A + CA2(B)
Opérations arithmétiques en différentes bases
Opérations en binaire
Les opérations d’addition en binaire suivent les règles classiques avec retenues. Par exemple :
0111 0 (7) + 1001 1 (9) ----------- 10000 1 (16)
Opérations en octal
En octal, les chiffres vont de 0 à 7. Lorsqu’une somme dépasse 7, on reporte la retenue en base 8.
Exemple :
114365 + 4515 --------- 50360
Opérations en hexadécimal
En hexadécimal, les chiffres vont de 0 à F (15). Les retenues sont reportées en base 16.
Exemple :
4865 + 7A51 ------- C2B6
Remarques sur les systèmes numériques
Les machines numériques utilisent le système binaire, basé sur deux symboles : 0 et 1. Ces symboles sont facilement représentés par deux niveaux de tension électrique, par exemple 0 V pour 0 et 5 V pour 1.
Points clés à retenir
- Un système de numération est défini par sa base b et ses digits.
- La représentation d’un nombre est une somme polynomiale des digits multipliés par leur poids.
- Les bases courantes sont binaire (2), octal (8), décimal (10) et hexadécimal (16).
- La conversion entre bases s’effectue par divisions successives (partie entière) et multiplications successives (partie fractionnaire).
- Le code Gray minimise les erreurs en ne changeant qu’un bit à la fois entre deux valeurs successives.
- Le code BCD code chaque chiffre décimal sur 4 bits.
- ASCII et Unicode sont des codes de caractères, Unicode étant plus étendu et compatible ASCII.
- La représentation des entiers signés peut se faire en signe/valeur absolue, complément à un ou complément à deux.
- Le complément à deux est la méthode la plus utilisée pour représenter les nombres négatifs en informatique.
- Les opérations arithmétiques suivent les règles propres à chaque base.
Commentaires
Aucun commentaire pour le moment. Posez la première question.