Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
Objectifs : Comprendre comment les ordinateurs :
1- Représentent une information (nombre, caractère, image, son etc.)
2- Convertissent des entiers ou des nombres à virgule flottante en représentation binaire et
vice versa
3- Réalisent des opérations mathématiques de base (addition, soustraction et multiplication)
A- Système décimal
Dans la vie courante, nous utilisons des nombres écrits en base 10.
Exemples :
5615 = 5000 + 600 + 10 +5
5615 = 5x1000+6x100+1x10+5x1
5615= 5x103 + 6x10² + 1x10 +5x100
Ainsi les nombres entiers positifs sont écrits à l’aide des dix chiffres 0,1, 2,3 ……,9
La position de chaque chiffre indiquant à quelle puissance de 10 il est associé.
Soit un nombre décimal N = 2348.
Ce nombre est la somme de 8 unités, 4 dizaines, 3 centaines et 2 milliers.
Nous pouvons écrire
N = (2 x 103
) + (3 x 102
) + (4 x 101) + (8 x 10
0)
10 représente la base et les puissances de 0 à 3 le rang de chaque chiffre.
Présentation de l’information
TS2 Codage de l’information : codage du texte
B- Système binaire
Dans les domaines de l'automatisme, de l'électronique et de l'informatique, le plus petit élément
d’information utilisé, appelé bit, est obtenu en associant soit 0, soit 1 à un signal, nous utilisons la
base 2 (0 et 1) par exemple :
Un interrupteur est ouvert ou fermé
* Une diode est allumée ou éteinte
*Une tension est présente ou absente
* Une surface est réfléchissante ou pas (CD)
* Un champ magnétique est orienté Nord-Sud ou Sud-Nord (disque dur)
A chaque état du système technologique, on associe un état logique (binaire) : on est amené à
représenter les nombres en base 2 .On dispose de deux chiffres : 0 et 1
Le chiffre binaire qui peut prendre ces
deux états est nommés "Bit" (Binary digit)
Avec un bit nous pouvons coder deux états
Avec deux bits nous pouvons coder quatre
états
Avec trois bits nous pouvons coder huit
états
Les nombres entiers positifs sont écrits suivant la même méthode positionnelle que dans la numération en base
10, en remplaçant les puissances de 10 par les puissances de 2.
Exemple : 3 = 2 + 1 = 1x21 +1x20 est noté 11 en base 2 et lu « un un »
3 = 112 où la base 2 est rappelée en indice pour éviter la confusion avec le nombre 11.
6 = 4 + 2 = 1x22 + 1x21 + 0x20 est noté 110 en base 2.
6 = 1102 lu « un un zéro »
L’écriture 101101 en binaire correspond en décimal à :
1x25 +0x24 + 1x23+1x2²+0x21 +1x20 = 32 +8 +4+1 = 45
Comme dans la numération en base 10, les puissances de 2 d’exposant négatif permettent des nombres avec
virgule en base 2.
2-1 =
= 0,5 ; donc 0,5 = 1x2-1 est noté 0,1 en binaire et lu « zéro virgule1 »
2-2 =
= 0,25 ; donc 0,25 = 0x2-1 + 1x2-2 est noté 0,01 en binaire
2-1 + 2-2 = 0,5 +0,25 ; donc 0,75 = 1x2-1 + 1x2-2 est noté 0,11 en binaire
A chaque nouveau bit, le nombre de combinaisons possibles est doublé.
Ce nombre est égal à 2 puissance N (N étant le nombre de bits).
Un groupe de bits est appelé un mot, un mot de huit bits est nommé un octet (byte).
Avec un octet, nous pouvons écrire 2 puissance 8 = 256 nombres binaires de 0 à 25
Description d'un octet.
Numération en base 16
Le système de numération binaire présente un incovénient important : il nécéssite l’utilisation d’un nombre
relativement elevé de bits pour écrire un nombre entier dès que celuici atteint quelques dizaines.
Pour remédier à ça, on utilise un système dont la base est une puissance de 2 : Le système hexadécimal qui est
le système de numération en base 16= 24
Le système hexadécimal ( 16 bits ) permet de réduire la longueur des mots et facilite leur manipulation. Ce
système comporte 16 symboles, les 10 chiffres du système décimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ) et
les 6 premières lettres de l’alphabet (A,B,C,D,E,F).
L’ordinateur comprend et utilise le code hexadécimal.
Tableau de correspondance entre les systèmes.
Décimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hexadécimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Binaire à
quatre bits
0000 0001 0011 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Dans le système hexadécimal, les nombres entiers positifs sont écrits à l’aide des seize symboles
0,1,………9,A,…F.
La position de chacun correspondant à une puissance de 16.
Ainsi :
38 = 32+6 = 2x161+6x160 est 26 en hexadécimal et noté 2616
164 = 160+4 = 10x161 + 4x160 est noté A4 en hexadécimal
Conversion entre bases
a. Conversions hexadécimal / décimal
a.1. Passer du code hexadécimal ( base 16 ) au code décimal ( base 10 )
B35A(16) = A 160 + 5 161 + 3 162 + B 163
B35A(16) = 10 1 + 5 16 + 3 256 + 11 4096 = 45914(10)
Question :
Ecrire 2A3 ( 16 ) et 1AD7 ( 16 ) en code décimal.
Ecrire 379(16) en code décimal
a.2. Passer du code décimal ( base 10 )au code hexadécimal ( base 16 )
On veut écrire le nombre 63650(10) en base 16. En divisant successivement par 16, on obtient :
63650(10) = 2 160 + 10 161 + 8 162 + 15 163
63650(10) = 2 160 + A 161 + 8 162 + F 163
63650(10) = F8A2 (16)
Question :
Ecrire le nombre 6887 ( 10 ) en code hexadécimal.
Ecrire 1123(10) en code hexadécimal.
63650 16
156 3978 16 125 77 248 16 130 138 88 15 2 10 8
b. Conversions hexadécimal / binaire
b.1. Du code binaire ( base 2) au code hexadécimal ( base 16 ).
1ère méthode :
On procède en 2 étapes :
passer du binaire au décimal
passer du décimal à l’hexadécimal
Exercice : Vérifier que 10110111101 ( 2 ) = 1469 ( 10 ) = 5BD ( 16 ).
2ème méthode
On découpe le nombre binaire en quartets, à partir de la droite puis on remplace chaque quartet par le symbole
hexadécimal correspondant.
En reprenant l’exemple précédent, on peut remarquer que :
10110111101(2) = 0101 1011 1101 = 5BD (16)
3 ème Méthode
Exercices : Ecrire le nombre 1111010100001010 (2 ) puis 27 ( 10 ) en code hexadécimal. b.2. Du code hexadécimal ( base 16 ) au code binaire ( base 2).
Ecrire le nombre 70E ( 16 ) en code binaire.
Méthode :
c. Correspondance entre binaire et décimal.
Conversion d'un nombre binaire en décimal
Il suffit donc de faire la somme des poids de chaque bit à 1
Le nombre ci dessus est égal à 64 + 4 + 1 = 69
d. Conversion d'un nombre décimal (entier) en binaire
Exemple : Conversion d'un nombre décimal en binaire (exemple : N = 172)
Méthode par soustraction
Méthode par divisions
e. Conversion d'un nombre décimal (avec virgule) en binaire Exemple 1 : 0.625
0.625 * 2 = 1.250 poids 1*2-1
0.250 * 2 = 0.500 poids 0*2-2
0.500 * 2 = 1.000poids 1*2-3
On a donc (0.625)10
= (0.101)2
Exemple 2 : 12.625 (12)10 = (1100)2 (12.625) = (1100.101)2
et (0.625)10 = (0.101)2
Exemple 3 : 0.325
0.325 * 2 = 0.650 poids 1*2
-1
0.650 * 2 = 1.300 poids 0*2
-2
0.300 * 2 = 0.600 poids 0*2
-3
0.600 * 2 = 1.200 poids 1*2
-4
0.200 * 2 = 0.400 poids 0*2
-5
0.400 * 2 = 0.800 poids 0*2
-6
0.800 * 2 = 1.600 poids 1*2
-7
0.600 * 2 = 1.200 poids 1*2
-8
0.200 * 2 = 0.400 poids 0*2
-9
0.400 * 2 = 0.800 poids 0*2
-10
0.800 * 2 = 1.600 poids 1*2
-11
On a donc (0.322)10 = (0.010 1001 1001 1001)2
La manipulation des nombres écrits en binaire est une opération fastidieuse en raison de la taille des codes
obtenus. Il serait donc judicieux d'utiliser un autre système qui permet de réduire la longueur de ces codes.
C'est pourquoi nous utilisons de préférence le système hexadécimal (base 16).
Les règles sont ici aussi les mêmes que pour le décimal.
Correspondance entre binaire et hexadécimal
La conversion du binaire en hexadécimal est très simple, c'est d'ailleurs la raison pour laquelle nous utilisons
cette base.
Il suffit de faire correspondre un mot de quatre bits
(quartet) à chaque chiffre hexadécimal.
Conversion d'un mot de 16 bits entre binaire et Hexadécimal
Correspondance entre décimal et hexadécimal La méthode par divisions s'applique comme en binaire (exemple : N = 2623).
(2623)10 = (A3F)16
Exemple 2 : 7254
Opérations arithmétiques et logiques Addition en binaire L’addition est réalisée bit à bit
0 + 0 = 0
1 + 0 = 1
1 + 1 = 10
10 en binaire correspond à 2 en décimal
Exemple :
45
0
0
1
0
1
1
0
1
+
55
0 0 1 1 0 1 1 1
=
100
0
1
1
0
0
1
0
0
Produit logique et binaire
0 * 0 = 0
0 * 1 = 0
1 * 0 = 0
1 * 1 = 1
Codage ASCII
Pour coder les caractères, on associe à chacun d'entre eux un code binaire, c'est le codage ASCII
(American Standard Code for Information Interchange).
Le caractère A code 65 soit 01000001 en binaire.
Le caractère f code 102 soit 001100110 en binaire
le point d'interrogation ? code 63 soit 00111100 en binaire
Le chiffre 2 code 50 soit 00110010 en binaire.
Convertir du binaire en hexadécimal
Première étape : prendre des paquets de 4 bits
Cette première étape est toute facile, il suffit juste de toujours prendre des regroupements de 4 bits. Voici des
exemples concrets pour bien vous expliquer ce que cela signifie :
Exemple 1 :
1(binaire) = 0001
101(binaire) = 0101
Lorsque vous avez moins de 4 bits, alors vous rajoutez des zéros devant pour atteindre le nombre de 4
bits demandé.
Exemple 2 :
10011011(binaire) = 1001 1011
111001(binaire) = 0011 1001
Lorsque vous avez plus de 4 bits, alors vous mettez des espaces pour séparer tous les paquets de 4 bits
(n'oubliez pas de rajouter des zéros si il le faut).
Exemple 3 :
1110101110011011(binaire) = 1110 1011 1001 1011
Comme pour l'exemple 2, il faut mettre des espaces pour faciliter la lecture et le calcul à venir.
Deuxième étape (méthode facile) : se reporter au tableau de conversion binaire-hexadécimal
La deuxième étape est presque aussi facile que la première. Il suffit de prendre chaque regroupement de 4 bits et
de faire la correspondance entre le binaire et le décimale.
Exemple 1 :
0001(binaire) = 1(hexa)
0110(binaire) = 6(hexa)
1011(binaire) = B(hexa)
Dans chacun des exemples ci-dessus ce n'est pas trop dur, il vous suffit juste de consulter le tableau de
conversion au début de ce cours.
Exemple 2 :
10(binaire) = 0010(binaire) = 2(hexa)
110(binaire) = 0110(binaire) = 6(hexa)
N'oubliez pas de faire la première étape lorsqu'il n'y a moins de 4 bits.
Exemple 3 :
1011 1001 0011(binaire) = B93(hexa)
Explication :
1011(binaire) = B(hexa)
1001(binaire) = 9(hexa)
0011(binaire) = 3(hexa)
Deuxième étape (méthode difficile) : cas général
Pour retrouver le tableau il faut d'abord convertir en décimal puis il suffit de faire une conversion de décimal à
hexadécimal.
Exemple 1 :
0(binaire) = 0x20 = 0x1 = 0(décimal) = 0(hexadécimal)
1(binaire) = 1x20 = 1x1 = 1(décimal) = 0(hexa)
Exemple 2 :
0011(binaire) = 11(binaire)
0011(binaire) = 1x21 + 1x2
0
0011(binaire) = 1x2 + 1x1
0011(binaire) = 2 + 1 = 3(décimal) = 3(hexa)
1111(binaire) = 1111(binaire)
1111(binaire) = 1x23 + 1x2
2 + 1x2
1 + 1x2
0
1111(binaire) = 1x8 + 1x4 + 1x2 + 1x1
1111(binaire) = 8 + 4 + 2 + 1 = 15(décimal) = F(hexa)
.Si vous avez bien regardé vous verrez qu'il y a une chose primordiale qui compte pour faire ce calcul :
l'emplacement des "1" dans le nombre en binaire.
Pour le bit tout à droite vous devez lui attribuer 20 (ce qui correspond à 1).
Exemple 3 :
1001(binaire) = 1001(binaire)
1001(binaire) = 1x23 + 0x2
2 + 0x2
1 + 1x2
0
1001(binaire) = 1x8 + 0x4 + 0x2 + 1x1
1001(binaire) = 8 + 0 + 0 + 1 = 9(hexa)
N'oubliez pas de multiplier par 0 si le bit est à zéro et par 1 si le bit est à un.
Exemple 4 :
1001 1011(binaire) = calcul de 1001 en décimal puis calcul de 1011 en décimal
1001 1011(binaire) = 1x23 + 0x2
2 + 0x2
1 + 1x2
0 puis 1x2
3 + 0x2
2 + 1x2
1 + 1x2
0
1001 1011(binaire) = 1x8 + 1x1 puis 1x8 + 1x2 + 1x1
1001 1011(binaire) = 8 + 1 puis 8 + 2 + 1
1001 1011(binaire) = 9 puis 11
1001 1011(binaire) = 9(décimal) puis B(décimal) = 9B(hexa)
Cet exemple vous permet de calculer avec des suites de bits plus grands. Cette suite de nombre plus
grand vous permet aussi de remarquer qu'il faut toujours calculer par paquet de 4 bits, c'est important.
Convertir l'hexadécimal en binaire
Exemple 1 :
1(hexa) = 0001(binaire)
6(hexa) = 0110(binaire)
B(hexa) = 1011(binaire)
Pour résoudre ces exemples, utilisez le tableau que j'ai fournis en tout début de ce cours.
Exemple 2 :
AB(hexa) : A=1010 et B=1011 donc :
AB(hexa) = 1010 1011(binaire)
11(hexa) = 0001 0001(binaire)
80(hexa) = 1000 0000(binaire)
FF(hexa) = 1111 1111(binaire)
Exemple 3 :
B931(hexa) = 1011 1001 0011 0001(binaire)
Explication :
B(hexa) = 1011(binaire)
9(hexa) = 1001(binaire)
3(hexa) = 0011(binaire)
1(hexa) = 0001(binaire)