Représentation des données
Généralités.
Vocabulaire.
Les nombres sont représentés par une suite de 0 ou de 1 que l'on appelent « bits ». Un groupe de huit bits est un « octet ».
Définitions de bit sur Wikipédia et dans le Wiktionnaire.
Définitions d'octet sur Wikipédia et dans le Wiktionnaire.
Notations.
Nous utiliserons les notations suivantes :

Représentation des nombres
Représentation des données/Entiers
Nous allons dans cette partie présenter différentes manières de représenter les entiers signés ou non. Les deux codages à retenir dans cette partie sont le codage binaire non signé et le codage en complément à 2 qui sont ceux utilisés les plus couramment en informatique.
BCD.
Le codage BCD (pour Binary Coded Decimal) code chaque chiffre d'un nombre en base 10 par un octet :
Le codage d'un entier est alors immédiat, il suffit de mettre bout à bout le codage de chaque chiffre du nombre. Par exemple le codage de 1978 est (00000001000010010000011100001000)2.
On peut remarquer que les quatre premiers bits de chaque octet sont toujours nul, on peut « compresser » le codage BCD en plaçant deux chiffres sur le même octet, le codage de 1978 devient alors : (0001100101111000)2.
Codage binaire non signé.
Chaque bit représente une puissance de deux, plus précisement
un bit en position i dans le nombre correspond à 2i.
Pour obtenir la valeur d'un entier, il suffit de faire la somme de ses puissances de deux, par exemple :
L'opération contraire (trouver la représentation d'un entier en base 2) s'effectue ainsi :
Par exemple pour convertir 13 :
Les restes des divisions successives donnent alors les bits du codage de 13 en base 2 en
commencant par la droite. 13 s'écrit donc (1101)2
Addition.
L'addition de deux nombres s'effectue comme une addition « classique » avec les règles suivantes :
La deuxième chose à prendre en compte est que les nombres sont limités à un certain nombre de bits
et que des débordements peuvent se produire et que dans ce cas, les résultats ne seront pas corrects.
Par exemple sur 8 bits :
129 + 127 = (10000001)2 + (01111111)2 = (00000000)2 = 0
Multiplication.
Le cas le plus simple de multiplication est la multiplication par 2. En effet chaque bit correspondant
à une puissance de 2, une multiplication par deux revient à décaler chaque bit d'un cran vers la
gauche.
Dans le cas général, la multiplication de deux nombres consiste à faire la somme des décalages. Pour multiplier 3 par 5 sur 4 bits :
On fait la somme des décalages de 3 pour lesquels les bits de 5 sont à 1, ce qui fait (0011)2 + (1100)2 = (1111)2 = 15.
Division.
De même que multiplier par 2 revient à décaler les bits vers la gauche, diviser par 2 revient à
décaler les bits vers la droite.
Codage binaire signé.
Dans le cas des entiers signés, on utilise le bit de poids le plus fort comme bit de signe, si il vaut 0 l'entier est positif, sinon il est négatif.
Complément à 2.
La notation la plus courament utilisée pour les entiers signés est le complément à deux :
Par exemple pour représenter -56 sur 8 bits :
Addition.
La notation en complément à deux a l'énorme avantage d'être compatible avec l'opération
d'addition telle que nous l'avons définie sur les entiers non signés,
en effet essayons d'additionner 56 et -56 sur 8 bits :
Les résultats obtenus peuvent néanmoins être surprenants, par exemple sur 8 bits :
Ce qu'il s'est produit est que les retenues du calcul ont débordé sur le bit de signe donnant ainsi un résultat négatif pour la somme de deux positifs.

Représentation des données/Réels
Virgule fixe.
Les réels sont représentés par deux entiers, le premier pour la partie entière, le second pour la partie décimale. Le nombre de bits résérvés à chacune de ces deux parties (l'endroit où on place la virgule) est fixe.
Virgule flottante.
On représente les réels avec trois informations :

Représentation des données/Caractères
Unicode.
UTF-8.
UTF-8 est un codage à taille variable, chaque caractère peut être représenté par un, deux, trois ou quatre octets. Ce codage est une représentation d'Unicode compatible avec le codage ASCII sur 7 bits.