2015 08 21 Chapitre 2 Representation-Information
2015 08 21 Chapitre 2 Representation-Information
2015 08 21 Chapitre 2 Representation-Information
TECHNOLOGIQUES DE SFAX
1. Introduction
Les informations traitées par un ordinateur peuvent être de différents types (texte,
nombres, etc.) mais elles sont toujours représentées et manipulées par l'ordinateur
sous forme binaire. Toute information sera traitée comme une suite de 0 et de 1.
L'unité d'information est donc le chiffre binaire (0 ou 1), que l'on appelle bit (pour
binary digit, chiffre binaire).
Le codage d'une information consiste à établir une correspondance entre la
représentation externe (habituelle) de l'information (le caractère A ou le nombre 36
par exemple), et sa représentation interne dans la machine, qui est une suite de bits.
On utilise la représentation binaire car elle est simple, facile à réaliser
techniquement. Enfin, les opérations arithmétiques de base (addition, multiplication
etc.) sont faciles à exprimer en base 2 (noter que la table de multiplication se résume
à 0x0 = 0, 1x0 = 0 et 1x1 = 1).
2. Changements de bases
Avant d'aborder la représentation des différents types de données (caractères,
nombres naturels, nombres réels), il convient de se familiariser avec la représentation
d'un nombre dans une base quelconque (par la suite, nous utiliserons souvent les
bases 2, 8, 10 et 16).
Habituellement, on utilise la base 10 pour représenter les nombres, c'est à dire que
l'on écrit à l'aide de 10 symboles distincts, les chiffres.
En base b, on utilise b chiffres. Notons ai la suite des chiffres utilisés pour écrire un
nombre x=an an-1 … a1 a0 . a0 est le chiffre des unités.
En décimal, b =10, ai {0,1,2,3,4,5,6,7,8,9};
En binaire, b =2, ai {0,1}: 2 chiffres binaires, ou bits;
En hexadécimal, b =16, ai {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} (on utilise les
6 premières lettres comme des chiffres).
2.1. Représentation des nombres entiers
En base 10, on écrit par exemple 1996 pour représenter le nombre
1996 = 1 103 + 9 102 + 9 101 + 6 10 0
En général, en base b, le nombre représenté par une suite de chiffres an an-1 …a1 a0 est
donné par :
n
a n a n1 ...a1a0 ai b i
i 0
(101)2 = 1 22 + 0 21 + 1 20 =4 + 0 + 1 = 5
44 = 22 * 2 + 0
22 = 11 * 2 + 0
11 = 2 * 5 + 1
5=2*2+1
2=1*2+0
1=0*2+1
0,25 * 2 = 0,50
0,50 * 2 = 1,00
0,00 * 2 = 0,00
et soit
n -2
y (1 - i )2 i 1
i 0
Or sur n bits, 2n-1 est représenté par n-1 zéros, donc on à x+y=0 modulo 2n-1, ou
encore y=-x .y peut être considéré comme l'opposé de x.
Pour obtenir le codage d'un nombre x négatif, on code en binaire sa valeur absolue sur
n-1 bits, puis on complémente (ou inverse) tous les bits et on ajoute 1.
Exemple : soit à coder la valeur -2 sur 8 bits. On exprime 2 en binaire, soit 00000010.
Le complément à 1 est 11111101. On ajoute 1 et on obtient le résultat : 1111 1110.
Remarques :
signe e f
31 30 23 22 0
Par exemple :
1 10000001 01000000000000000000000 représente :
Bit du signe = 1 nombre négatif
e - 127 = (10000001)2 - 127 = 129 - 127 = 2
f = (0,01)2 = 0,25
Donc le nombre représenté est -1,25 × 22 = -5.
+0,25 = (0,01)2 est représenté par :
Nombre positif Bit du signe = 0
(0,01)2 = 1,0 × 2-2 = 1,0 × 2125-127
Donc +0,25 est représenté par 0 01111101 00000000000000000000000
Remarques :
Les exposants 00000000 et 11111111 sont interdits :
L’exposant 00000000 signifie que le nombre est dénormalisé ;
L’exposant 11111111 indique que l’on n’a pas affaire à un nombre (On note
cette configuration NaN(Not a Number) et on l’utilise pour signaler des
erreurs de calculs, comme par exemple une division par 0 )
Les plus petit exposant est donc -126 et le plus grand +127
Les codes compris entre 0 et 31 ne représentent pas des caractères, ils ne sont pas
affichables. Ces codes, souvent nommés caractères de contrôles sont utilisés pour
indiquer des actions comme passer à la ligne (CR, LF), émettre un bip sonore (BEL),
etc.
Les lettres se suivent dans l'ordre alphabétique (codes 65 à 90 pour les majuscules,
97 à 122 pour les minuscules), ce qui simplifie les comparaisons.
On passe des majuscules aux minuscules en modifiant le 5ième bit, ce qui revient à
ajouter 32 au code ASCII décimal.
Les chiffres sont rangés dans l'ordre croissant (codes 48 à 57), et les 4 bits de poids
faibles définissent la valeur en binaire du chiffre.
1 1 00000001 33 21 00100001 !
5 5 00000101 37 25 00100101 %
8 8 00001000 40 28 00101000 (
9 9 00001001 41 29 00101001 )
10 A 00001010 LF 42 2A 00101010 *
11 B 00001011 43 2B 00101011 +
12 C 00001100 44 2C 00101100 ,
13 D 00001101 CR 45 2D 00101101 -
14 E 00001110 46 2E 00101110 .
15 F 00001111 47 2F 00101111 /
16 10 00010000 48 30 00110000 0
17 11 00010001 49 31 00110001 1
18 12 00010010 50 32 00110010 2
19 13 00010011 51 33 00110011 3
21 15 00010101 53 35 00110101 5
22 16 00010110 54 36 00110110 6
23 17 00010111 55 37 00110111 7
24 18 00011000 56 38 00111000 8
25 19 00011001 57 39 00111001 9
26 1A 00011010 58 3A 00111010 :
27 1B 00011011 59 3B 00111011 ;
64 40 01000000 @ 96 60 01100000 `
65 41 01000001 A 97 61 01100001 a
66 42 01000010 B 98 62 01100010 b
67 43 01000011 C 99 63 01100011 c
6. Les additionneurs:
3.1. Le demi-additionneur:
Le demi-additionneur est un circuit qui réalise l'addition de deux bits. La somme s'obtient
normalement sur deux digits binaires, S pour le poids faible, R pour le poids fort ou
retenue. Du tableau de vérité de la figure 15, on déduit les équations :
Fig.17 : Le demi-soustracteur