Qu'est-ce qu'un octet (byte) ?
Un octet (byte en anglais) est une unité de données numériques composée de 8 bits, qui ensemble peuvent représenter 256 valeurs différentes, de 0 à 255. Sur la plupart des ordinateurs, c'est la plus petite unité de mémoire qui a sa propre adresse, et la taille des fichiers se compte en octets.
Mis à jour le 24 septembre 2026
- 48H
- 69i
- 20␣
- F0 9F 98 80😀
4 caractères, 7 octets
La lettre A, stockée sur ton ordinateur, est le nombre 65, et le nombre 65 est stocké sous forme de huit bits : 01000001. Ce groupe de huit est un octet. Les adresses mémoire comptent des octets, la taille des fichiers compte des octets, et presque chaque type de données d'un langage de programmation occupe un nombre entier d'octets.
Pourquoi un octet fait 8 bits
Le mot anglais « byte » a été inventé par Werner Buchholz en 1956, alors qu'il travaillait sur l'ordinateur Stretch d'IBM. Il l'a écrit avec un y pour qu'on ne le confonde pas avec « bit ». Les premiers ordinateurs utilisaient des groupes de tailles différentes, souvent 6 bits, ce qui suffisait pour les majuscules et les chiffres, mais pas pour les minuscules.
Le System/360 d'IBM, sorti en 1964, utilisait des octets de 8 bits, et le reste de l'industrie a suivi. Huit bits donnent 256 valeurs, de quoi loger les majuscules et les minuscules, les chiffres, la ponctuation et les codes de contrôle. Huit est aussi une puissance de deux, donc un octet se divise exactement en deux moitiés de 4 bits, chacune écrite avec un chiffre hexadécimal. Le mot français « octet » dit justement « exactement 8 bits », et c'est aussi celui qu'emploient les normes réseau, même en anglais, quand elles doivent être précises.
Ce qu'un octet peut contenir
Un octet a 256 combinaisons possibles, de 00000000 à 11111111. Les programmes les lisent de quelques façons standard :
- comme un nombre non signé de 0 à 255 ;
- comme un nombre signé de -128 à 127 ;
- comme un caractère, par exemple
A(65) ou!(33) ; - comme deux chiffres hexadécimaux, de
00àFF.
Le type bytes de Python est une suite de ces valeurs, et il refuse tout ce qui sort de l'intervalle 0 à 255 :
b'Hi!'
[72, 105, 33]
01001000 48
ValueError: bytes must be in range(0, 256)
Tous les caractères ne tiennent pas dans un seul octet. UTF-8, l'encodage utilisé par la majeure partie du web, stocke les 128 caractères ASCII sur 1 octet chacun, et tout le reste sur 2 à 4 octets :
A 1 bytes: [65] 41
é 2 bytes: [195, 169] c3a9
€ 3 bytes: [226, 130, 172] e282ac
😀 4 bytes: [240, 159, 152, 128] f09f9880
C'est pour cela que la longueur d'une chaîne en caractères et sa taille en octets peuvent différer.
Différence entre bit et octet
Un bit est un simple 0 ou 1. Un octet vaut 8 bits. Les deux unités sont faciles à confondre, surtout en anglais, où leurs symboles ne diffèrent que par la casse :
| Bit | Octet | |
|---|---|---|
| Ce que c'est | Un chiffre binaire | 8 bits |
| Valeurs possibles | 2 (0 ou 1) | 256 (0 à 255) |
| Symbole | b (minuscule) | o en français, B (majuscule) en anglais |
| Mesure généralement | Le débit réseau : Mbps, Gbps | Le stockage et la taille des fichiers : ko, Mo, Go |
| Exemple | Une connexion à 100 Mbps | Une photo de 5 Mo |
Pour convertir des bits en octets, divise par 8. Une connexion à 100 Mbps transfère au maximum 12,5 Mo par seconde, donc une photo de 5 Mo met au moins 0,4 seconde à se télécharger.
Kilooctets, mégaoctets et gigaoctets
Les unités plus grandes existent dans deux systèmes, et l'écart entre eux explique pourquoi un disque neuf paraît plus petit dans Windows que sur son étiquette.
| Décimal (SI) | Octets | Binaire (CEI) | Octets |
|---|---|---|---|
| kilooctet (ko) | 1 000 | kibioctet (Kio) | 1 024 |
| mégaoctet (Mo) | 1 000 000 | mébioctet (Mio) | 1 048 576 |
| gigaoctet (Go) | 1 000 000 000 | gibioctet (Gio) | 1 073 741 824 |
| téraoctet (To) | 1 000 000 000 000 | tébioctet (Tio) | 1 099 511 627 776 |
Les fabricants de disques, les débits réseau et macOS (depuis la version 10.6, en 2009) utilisent les unités décimales. La taille de la RAM et Windows utilisent les unités binaires, mais Windows les appelle Ko, Mo et Go. La CEI a introduit les noms kibioctet, mébioctet et gibioctet en 1998 pour mettre fin à la confusion, même si beaucoup de programmes ne les utilisent toujours pas.
1.0 TB (decimal, used on the box)
931.3 GiB (binary, what Windows calls GB)
12.5 MB per second
Il ne manque aucun espace disque. Le disque contient bien les mille milliards d'octets promis sur la boîte ; Windows divise trois fois par 1 024 au lieu de 1 000.
Les octets dans le code
Chaque valeur en mémoire occupe un nombre entier d'octets. En C, sizeof donne ce nombre. Un char fait exactement 1 octet par définition, et sur les systèmes Linux, macOS et Windows 64 bits actuels, un short fait 2 octets, un int 4 et un double 8. Un tableau de 1 000 valeurs int occupe donc 4 000 octets.
printf("%zu\n", sizeof(int)); /* prints 4 */
Le type byte de Java est toujours signé, de -128 à 127, donc une valeur comme 200 n'y tient pas :
byte b = (byte) 200; // b is -56: the same 8 bits, read as signed
Les données brutes, comme les images, les fichiers compressés et les paquets réseau, sont manipulées sous forme de tableaux d'octets : bytes et bytearray en Python, byte[] en Java, Uint8Array en JavaScript. Ouvrir un fichier en Python avec le mode "rb" te donne ses octets au lieu de texte.
Les empreintes (hashes) et les checksums se mesurent aussi en octets. Une empreinte SHA-256 fait 32 octets, c'est pour cela qu'elle s'affiche en 64 caractères hexadécimaux, et un checksum CRC32 fait 4 octets. Le générateur de hash affiche les deux pour n'importe quel texte.
Pour aller plus loin
Pour l'unité qui se trouve sous l'octet, lis ce qu'est un bit, et pour la façon dont les octets servent à détecter les fichiers endommagés, ce qu'est un checksum. Le convertisseur de bases numériques convertit n'importe quel octet entre décimal, binaire et hexadécimal, et le guide des types de données en C donne la taille en octets de chaque type C.
Questions fréquentes
Comment s'appellent 8 bits 11111111 ?
11111111 est un octet dont tous les bits valent 1. Lu comme un nombre non signé, il vaut 255, la plus grande valeur qu'un octet peut contenir, qui s'écrit FF en hexadécimal. Lus comme un octet signé en complément à deux, les mêmes bits signifient -1.Pourquoi 8 bits font-ils 1 octet ?
Pourquoi 4 bits s'appellent-ils un quartet (nibble) ?
Un octet fait-il 4 bits ?
Qu'est-ce qui est le plus grand, un octet ou un Go ?
À quoi ressemble un octet ?
01000001. Cette combinaison est le nombre 65, qui est aussi le code de la lettre A en ASCII. Les programmeurs écrivent plutôt un octet sous forme de deux chiffres hexadécimaux, donc 01000001 devient 41.