Représentation des données
Binaire, hexadécimal, ASCII
Base 2
Nous sommes habitués à calculer en base 10 mais la représentation en machine des nombres s’exprime en base 2 (binaire), toutes les informations sont en effet représentées à l’aide de 0 et de 1: ce sont les binary digits ou bits.
Base 16
La base 16 (hexadecimal) est utile pour plus de lisibilité, elle est notamment employée pour les couleurs HTML. Il suffit de regrouper les bits par paquet de 4 puis de convertir chaque nombre obtenu de 0 à 15 (en base 16, A correspond à 10, B à 11 etc.).
Base 2: entiers négatifs
On utilise une astuce pour représenter les entiers négatifs, celle du complément à deux:
Une méthode simple pour représenter un entier négatif est d’inverser les bits dans sa représentation « positive » et d’ajouter un.
Base 2: nombres à virgule
En machine, les entiers sont représentés de façon exacte, les flottants sont eux une représentation approximative des nombres réels dans un ordinateur.
Cette représentation s’inspire de la notation scientifique:
[katex] (-1)^s \times m \times 2^{n-d}[/katex]
où sur 32 bits:
- s codé sur 1 bit prend les valeurs 0 ou 1: il détermine le signe.
- m codé sur 23 bits est la mantisse de la forme [katex]1, xxxx….xxx [/katex]. Faites l’analogie avec la notation scientifique où m est un entier entre 1 et 9. Le 1 toujours présent en base 2 n’est pas codé et xxx est une suite de bits représentant la partie décimale.
- n-d codé sur 8 bits est l’exposant décalé: sur 32 bits le décalage d =127.
On peut donc adapter la formule:
[katex] (-1)^s \times 1, xxxx… \times 2^{n-127}[/katex]
Cours: Encodage des entiers et des réels
Logique Booléenne
Les opérateurs sur les nombres binaires sont construits à partir de circuits électroniques, fabriqués euxx-mêmes par des transistors. Certain circuits peuvent être décrits comme des fonctions booléennes.
Cours: Circuits et logique booléenne