Comment fonctionnent les bits et les octets dans la mémoire de l’ordinateur

5

Si vous possédez un ordinateur depuis plus longtemps qu’une pause-café, vous avez vu les termes bits et octets utilisés. Ce sont les unités standard pour mesurer la RAM, la capacité du disque dur et la taille des fichiers dans tout visualiseur de fichiers moderne.

Vous entendrez peut-être un argumentaire de vente affirmant qu’une machine est équipée d’un processeur Pentium 32 bits avec 64 Mo de RAM et 2,1 Go d’espace disque. Ces spécifications apparaissent constamment dans les guides techniques et les didacticiels. Comprendre ce que signifient réellement ces termes vous aide à arrêter de deviner et à commencer à savoir.

Nombres décimaux

Pour comprendre un peu, comparez-le à quelque chose de familier : chiffres.

Un chiffre est un emplacement unique pour une valeur comprise entre 0 et 9. Nous les combinons pour créer des nombres plus grands. Prenez 6 357. Il comporte quatre chiffres. Le 7 se trouve à la « place du 1 ». Le 5 est à la place des 10. Le 3 est à la place des centaines. Le 6 occupe la place des milliers.

Vous pouvez l’écrire explicitement :

(6 * 1000) + (3 * 100) + (5 * 10) + (7 * 1) = 6000 + 300 + 50 + 7 = 6357

Ou utilisez des puissances de 10. En utilisant le symbole caret (^) pour « à la puissance de », cela ressemble à ceci :

(6 * 10^3) + (3 * 10^2) + (5 * 10^1) + (10^0) = 6000 + 300 + 50 + 7 = 6357

Chaque chiffre est un espace réservé pour la puissance immédiatement supérieure de 10. Le premier chiffre commence à 10^0.

Cela semble normal car nous utilisons quotidiennement un système base-10. Cela existe probablement parce que les humains ont dix doigts. Si nous évoluions avec huit doigts, nous utiliserions probablement un système base 8. Vous pouvez utiliser n’importe quelle base de votre choix. Différentes bases ont du sens dans différents contextes.

Les ordinateurs utilisent le système numérique de base 2. Il est également connu sous le nom de système de numérotation binaire.

Le système Base-2 et l’octet de 8 bits

Les ordinateurs utilisent la base 2 parce que c’est bon marché. Vous pourriez construire un ordinateur en base 10. Ce serait tout simplement diablement cher. Le matériel Base-2 est relativement abordable.

Les ordinateurs utilisent donc des nombres binaires. Ils utilisent des chiffres binaires au lieu de chiffres décimaux. Le mot bit raccourcit « Binary digIT ».

Les chiffres décimaux ont 10 valeurs : 0 à 9. Les bits n’ont que deux valeurs : 0 et 1. Un nombre binaire est simplement une chaîne de 0 et de 1, comme 1011.

Pour trouver la valeur, utilisez les puissances en base 2 au lieu de la base 10.

(1 * 2 ^ 3) + (0 * 2 ^ 2) + (1 * 2 ^ 1) + (1 * 2 ^ 0) = 8 + 0 + 2 + 1 = 11

Chaque bit représente des puissances croissantes de 2. Le comptage en binaire est simple. Voici comment comparer les nombres décimaux et binaires de 0 à 20 :

  • 0 = 0
  • 1 = 1
    *2 = 10
  • 3 = 11
  • 4 = 100
  • 5 = 101
    *6 = 110
  • 7 = 111
  • 8 = 1000
    *9 = 1001
  • 10 = 1010
  • 11 = 1011
  • 12 = 1100
  • 13 = 1101
  • 14 = 1110
  • 15 = 1111
  • 16 = 10 000
  • 17 = 10001
  • 18 = 10010
  • 19 = 10011
  • 20 = 10100

Notez le report. Au numéro 2, le binaire est porté pour la première fois. Si un bit vaut 1 et que vous ajoutez 1, il devient 0 et le bit suivant devient 1. Passer de 15 à 16 passe par quatre bits, transformant 1111 en 10000.

Les bits voyagent rarement seuls. Ils sont regroupés dans des collections 8 bits. Ces bundles sont appelés octets.

Pourquoi huit bits dans un octet ? C’est comme se demander pourquoi il y a 12 œufs sur une douzaine. Les gens ont opté pour 8 bits par essais et erreurs au cours des 50 dernières années.

Avec 8 bits, vous pouvez représenter 256 valeurs. Ils vont de 0 à 255.

  • 0 = 00000000
  • 1 = 00000001
  • 2 = 00000010
    *…
  • 254 = 11111110
  • 255 = 11111111

Dans Fonctionnement des CD, vous apprenez qu’un CD utilise 2 octets par échantillon. Cela fait 16 bits. Chaque échantillon peut aller de 0 à 65 535.

  • 0 = 0000000000000000
  • 1 = 0000000000000001
  • 2 = 0000000000000010
    *…
  • 65534 = 1111111111111110
  • 65535 = 1111111111111111

Ensuite, nous examinerons une manière dont les octets sont utilisés.

Comment l’encodage ASCII et les mathématiques binaires alimentent vos données

Le texte n’est pas magique. Ce sont juste des numéros en costume.

Lorsque vous tapez une phrase, votre ordinateur ne voit pas les lettres. Il voit des valeurs binaires. Plus précisément, il s’appuie sur le jeu de caractères ASCII standard pour transformer les frappes au clavier en données. Dans ce système, chaque valeur binaire de 0 à 127 correspond à un caractère spécifique. La plupart des systèmes étendent ce nombre à 256 valeurs en utilisant un octet complet, en ajoutant des lettres accentuées et des symboles pour les langues internationales.

Mais les 128 codes de base constituent le fondement.

Considérez le Bloc-notes Windows 95/98. Si vous tapez « Il y a quatre points et sept ans », le logiciel alloue exactement un octet de mémoire par caractère. Cela inclut les espaces entre les mots. L’espace est le code ASCII 32. La période est 46. « A » est 65.

Essayez-le vous-même.

Créez un fichier nommé « getty.txt ». Tapez cette phrase. Enregistrez-le. Ouvrez votre explorateur de fichiers. La taille est de 30 octets. Pourquoi? Parce qu’il y a 30 caractères. Ajoutez un mot. Le fichier s’agrandit selon le nombre de lettres de ce mot. C’est un rapport direct de 1:1.

Ouvrez le fichier sous forme de données brutes et les lettres disparaissent. Vous voyez des chiffres.

Ce sont des représentations décimales des codes ASCII. Pour être techniquement précis, la machine ne voit que du binaire. 32 devient « 00100000 ». Mais la logique tient : chaque octet contient un caractère.

Les 32 premières valeurs (0 à 31) ne sont pas des lettres. Ce sont des codes de contrôle. Retours en calèche. Sauts de ligne. La cloche sonne. Les caractères imprimables réels commencent à 32. La ponctuation vient ensuite. Puis des chiffres. Puis en majuscule. Puis en minuscule. Vous pouvez consulter le graphique complet sur Unicode.org, mais le principe est simple. Le stockage de texte n’est qu’une liste de ces entiers.

Comprendre les préfixes d’octets et les mathématiques binaires

Une fois que vous comprenez que les données ne sont que des octets, vous rencontrez un nouveau problème : l’échelle.

Un octet est petit. La plupart des fichiers sont volumineux. Nous avons donc besoin de préfixes.

Nous utilisons des préfixes d’octets pour indiquer l’ampleur. Kilo, méga, giga. Ce ne sont pas seulement des termes marketing. Ce sont des multiplicateurs binaires.

  • Kilo (K) : 2 $^{10}$ = 1 024 octets
  • Méga (M) : $2^{20}$ = 1 048 576 octets
  • Giga (G) : 2 $^{30}$ = 1 073 741 824 octets
  • Tera (T) : 2 $^{40}$ = ~1 100 milliards d’octets
  • Peta (P) : 2 $^{50}$ = ~1,1 quadrillion d’octets
  • Exa (E) : 2 $^{60}$ = ~1,1 quintillion d’octets
  • Zetta (Z) : 2 $^{70}$
  • Yotta (Y) : 2 $^{80}$

Un kilo équivaut à environ mille. Méga vaut un million. Le giga vaut un milliard.

Quand quelqu’un prétend que son disque dur fait « 2 gigaoctets », il veut dire 2 $ \times 2^{30}$ octets. Exactement 2 147 483 648 octets.

Cela semble abstrait jusqu’à ce que vous visualisiez les données. Un CD standard contient environ 650 mégaoctets. Trois CD remplissent un lecteur de 2 Go. Une base de données de téraoctets est courante. Des bases de données pétaoctets existent probablement dans les principales installations gouvernementales. L’échelle croît de façon exponentielle.

Cela nous amène aux mathématiques binaires.

Cela fonctionne comme des mathématiques décimales, avec une contrainte stricte. Chaque bit ne peut être que 0 ou 1.

En décimal, on compte 0-9. Lorsque nous atteignons 9 et ajoutons 1, nous portons le 1 dans la colonne suivante. Le binaire fonctionne de manière identique, mais le report s’effectue plus rapidement.

Prenez l’addition décimale :

Commencez bien. 2$+1=3$. Colonne suivante : 5$+5=10$. Écrivez 0, portez 1. Suivant : $4+7+1(carry)=12$. Écrivez 2, portez 1. Finale : $0+0+1=1$. Résultat : 1203.

Maintenant, binaire.

Bit le plus à droite : $0+1=1$. Pas de transport.
Deuxième bit : $1+1=10$. Écrivez 0, portez 1.
Troisième bit : $0+1+1(carry)=10$. Écrivez 0, portez 1.
Quatrième bit : $0+0+1(carry)=1$.

Le résultat est « 1001 ». En décimal, cela fait 9. Le calcul est identique. La représentation est simplement en base 2 au lieu de base 10.

L’essentiel

Les bits sont des chiffres binaires. Ils sont 0 ou 1.
Les octets sont des groupes de 8 bits.
Le texte n’est qu’une séquence d’octets mappés sur des codes ASCII.
La taille de stockage est mesurée en puissances binaires de 1 024.

Ce n’est pas compliqué. C’est juste fondamental.

Pour une analyse plus approfondie de la logique booléenne et des implémentations de portes, découvrez comment fonctionne l’addition booléenne. Le reste se compte simplement en binaire.