Octet
espace mémoire de 8 bits en
informatique
En informatique, un octet est un multiplet de 8 bits codant une information[1]. Dans ce
système de codage s'appuyant sur le système binaire, un octet permet de représenter 28
nombres, soit 256 valeurs différentes. Un octet permet de coder des valeurs numériques ou
jusqu'à 256 caractères différents.
Cet article ne cite pas suffisamment ses sources (mai 2019).
Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez
des sites web de qualité traitant du thème abordé ici, merci de compléter l'article
en donnant les références utiles à sa vérifiabilité et en les liant à la section
« Notes et références ».
En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
1 0 1 0 0 0 1 1
Écriture dans un octet de 27 + 25 + 21 + 20,
c'est-à-dire 163, en code binaire naturel.
Le terme est couramment utilisé comme unité de mesure en informatique (symbole : o) pour
indiquer la capacité de mémorisation des mémoires (mémoire vive ou morte, capacité des
périphériques de stockage, etc.). À cette fin, on utilise couramment des multiples de l'octet,
comme le kilooctet (Ko[2]), le mégaoctet (Mo), le gigaoctet (Go) ou le téraoctet (To)[3].
Cette unité permet aussi de quantifier la rapidité de transfert d'informations en octets par
seconde (ou ses multiples : Ko/s, Mo/s, etc.).
Étymologie
Le mot octet est constitué du préfixe « oct- » signifiant huit et du suffixe « -et » signifiant petit.
Littéralement un octet est un groupe de 8 bits[1] qui permettent de coder 256 caractères
différents[1], ce qui est largement suffisant pour coder l'alphabet latin (y compris les
différents types d'accents), les chiffres et la ponctuation. La langue anglaise a repris ce terme
avec la même orthographe et la même signification.
Historique
Cette section ne cite pas
suffisamment ses sources (février
2020).
Pour l'améliorer, ajoutez des
références de qualité et vérifiables
(comment faire ?) ou le modèle
{{Référence nécessaire}} sur les
passages nécessitant une source.
La quantité de bits que le processeur doit consommer pour exécuter une instruction machine
est appelé le mot, sa taille est définie par le constructeur. Aux origines de l'informatique, les
processeurs étant limités, ceux-ci consommaient ce mot par petites « bouchées »,
correspondant au nombre de bits du bus de données. C'est ainsi, que le terme Byte est créé
en 1956 par Werner Buchholz alors qu'il travaille à la conception de l'IBM Stretch. C'est une
déformation orthographique volontaire de l'anglais bite, littéralement « bouchée », pour éviter
toute confusion avec bit par élision du e final[4].
Le byte était également l'unité de stockage permettant de stocker un caractère. En anglais, on
utilise fréquemment le mot « char » (abréviation de character) pour « byte », et
réciproquement. Chaque constructeur définissait la taille du byte en fonction de ses besoins
du moment. Dans les années 1950 et 1960, le byte était souvent composé de 6 bits, car tous
les caractères nécessaires à la programmation en langue anglaise pouvaient être codés avec
six bits (64 possibilités). Le byte pouvait aussi avoir une taille de 9 bits sur d'autres systèmes.
Le PDP-10 avait encore une autre définition du byte avec une taille variable, allant de 1 à 36
bits selon l'instruction machine à exécuter.
Dans la plupart des architectures matérielles, la capacité de la mémoire informatique est
généralement exprimée en bytes, alors que sur les architectures « grand public » en français,
on l'exprime en octets. La généralisation des bytes de huit bits amplifie cette confusion, en
tirant un trait sur les architectures anciennes − essentiellement nord-américaines. On trouve
beaucoup de documentation en français exprimant improprement la capacité de mémoire en
bytes par une confusion bytes/octets lors de la traduction.
Aujourd'hui, pour le Dictionnaire du multimédia – Audiovisuel, informatique,
télécommunications[5] de l'AFNOR, le byte est « l'unité d'information correspondant à un octet,
soit 8 bits ». La normalisation IEC 80000-13 va dans le même sens : normaliser la taille des
bytes à 8 bits. C'est de cette « normalisation » à 8 bits que vient la confusion.
Toutefois, en anglais comme en français, si l'on veut explicitement désigner une quantité de
huit bits, on utilise le mot « octet » ; tandis que si l'on veut exprimer l'unité d'adressage
indépendamment du nombre de bits, on utilise le mot « byte ». Ainsi la description formelle
d’un langage de programmation utilisera sciemment le mot byte si le langage ne nécessite
pas qu’un byte ait une taille d’un octet. C’est par exemple le cas du langage C, où un byte peut
contenir plus de huit bits. Le mot « octet » est sciemment utilisé en français comme en
anglais pour décrire un format de données au bit près. Ainsi, on trouve le mot « octet » dans
des textes anglais comme le RFC 793[6] qui décrit le protocole de communication TCP
d'Internet, ou dans le standard H.263 qui décrit une norme de codage vidéo numérique.
La même distinction entre « byte » et « octet » existe donc dans les deux langues, seul
change le mot que l'on utilise couramment dans les cas où le byte mesure huit bits.
Symbole
Le symbole de l'octet est la lettre « o » minuscule.
La lettre « O » (en majuscule) n'est pas acceptable dans le Système international d'unités (SI)
en raison du risque de confusion avec le chiffre 0 et parce que les lettres majuscules sont en
général utilisées pour les symboles des unités dérivées d'un nom propre [réf. souhaitée] (par
exemple : volt dont le symbole est V, ou watt dont le symbole est W). Cette question n'est
cependant pas tranchée, les unités d'information ne faisant pas partie du SI.
Multiples
Article détaillé : Unité de mesure en
informatique.
Multiples de l'octet :
préfixes binaires
Nom Symbole Valeur
kibioctet Kio 210
mébioctet Mio 220
gibioctet Gio 230
tébioctet Tio 240
pébioctet Pio 250
exbioctet Eio 260
zébioctet Zio 270
yobioctet Yio 280
Multiples de l'octet :
préfixes décimaux du SI et mésusages
Nom Symbole Valeur Mésusage[a]
kilooctet ko 103 210
mégaoctet Mo 106 220
gigaoctet Go 109 230
téraoctet To 1012 240
pétaoctet Po 1015 250
exaoctet Eo 1018 260
zettaoctet Zo 1021 270
yottaoctet Yo 1024 280
ronnaoctet Ro 1027 290
quettaoctet Qo 1030 2100
Historiquement, dans le monde informatique, les préfixes « kilo », « méga », « giga », etc. ne
représentaient pas une puissance d'un nombre en base dix (103 = 1 000), mais une puissance
d'un nombre en base 2 (210 = 1 024). Cependant, cette tradition n'était pas compatible avec
les normes en vigueur pour les autres unités et n'était pas appliquée uniformément aux tailles
exprimées en octets, notamment pour la mesure de la capacité des disques durs et autres
périphériques de stockage. Une nouvelle norme a donc été créée en 1998 pour noter les
multiples de 210 = 1 024[b],[7] : les « kibi », « mébi », « gibi », etc.[8].
Cependant, encore actuellement, pour des raisons pratiques nombre de constructeurs de
matériels (microprocesseurs, microcontrôleurs, mémoires, FPGA, etc.) n'appliquent pas cette
norme et continuent d'utiliser les multiples historiques dans leur documentation technique. Il
est notamment toujours d'usage d'utiliser le préfixe « K » (en majuscule) pour le multiple
1 024 afin de le distinguer du multiple 1 000 représenté par le préfixe « k » (en minuscule)
dans le système SI.
Multiples normalisés
La normalisation des préfixes binaires en 1998 par la Commission électrotechnique
internationale spécifie les préfixes suivants pour représenter les multiples calculés en
puissances de 2[9] :
kibi pour « kilo binaire » ;
mébi pour « méga binaire » ;
gibi pour « giga binaire » ;
tébi pour « téra binaire » ;
ainsi de suite.
Les préfixes binaires ont la relation d'ordre suivante :
1
= 210
kibioctet = 1 024 o = 1 024 octets
octets
(Kio)
1
= 220 =
mébioctet = 1 048 576 oc
octets 1 024 Kio
(Mio)
1
= 230 =
gibioctet = 1 073 741 82
octets 1 024 Mio
(Gio)
1
= 240 =
tébioctet = 1 099 511 62
octets 1 024 Gio
(Tio)
1
= 250 =
pébioctet = 1 125 899 90
octets 1 024 Tio
(Pio)
1
= 260 =
exbioctet = 1 152 921 50
octets 1 024 Pio
(Eio)
1
= 270 =
zébioctet = 1 180 591 62
octets 1 024 Eio
(Zio)
1
= 280 = =
yobioctet
octets 1 024 Zio 1 208 925 819
(Yio)
Les préfixes décimaux quant à eux sont identiques aux préfixes du Système international
d'unités :
1 kilooctet =
= 1 000 o = 1 000 o
(ko) 103 octets
1
= =
mégaoctet = 1 000
106 octets 1 000 ko
(Mo)
1 gigaoctet = =
= 1 000
(Go) 109 octets 1 000 Mo
1 téraoctet = =
= 1 000
(To) 1012 octets 1 000 Go
1 pétaoctet = =
= 1 000
(Po) 1015 octets 1 000 To
1 exaoctet = =
= 1 000
(Eo) 1018 octets 1 000 Po
1
= =
zettaoctet = 1 000
1021 octets 1 000 Eo
(Zo)
1
= =
yottaoctet = 1 000
1024 octets 1 000 Zo
(Yo)
1
= =
ronnaoctet = 1 000
1027 octets 1 000 Yo
(Ro)
1
= = =
quettaoctet
1030 octets 1 000 Ro 1 000 00
(Qo)
Confusions entre multiples binaires
et décimaux
Windows Vista affiche les valeurs en Go (puissance de
10), tout en les calculant en Gio (puissance de 2), ce qui
est contraire aux règles du SI.
Certains utilisateurs débutants sont légitimement perturbés lorsqu'un logiciel ou système
d'exploitation leur présente une quantité d'octets affichée avec un préfixe décimal, ou un
acronyme en « Go », « Mo », mais une quantité calculée, à tort, sur des puissances de 1024.
Bien que les constructeurs indiquent sur leurs composants des valeurs décimales (par
exemple « 32 Go » représentent 32 × 109 octets), ces logiciels vont indiquer soit correctement
« 29,8 Gio », soit incorrectement « 29,8 Go ». Plus la capacité des supports augmente plus
l'écart entre les valeurs attendues et constatées devient important : ainsi un disque dur de
« 8 To » (valeur indiquée par le constructeur et qui est conventionnellement correcte) a une
capacité affichée dans les systèmes d'exploitation de 8 × 1012 / 10244 = 7,27 Tio,
fréquemment notée de façon erronée « 7,27 To », soit un écart de 9 %.
Ces confusions ont été à l'origine de plusieurs actions en justice, notamment aux États-
Unis[10].
L'usage des préfixes décimaux, en contradiction avec les recommandations de la
Commission électrotechnique internationale qui définissent clairement d'autres préfixes,
reste toujours répandu dans la littérature et dans le langage courant. Les préfixes
recommandés — « kibi », « mébi »... — ne sont pas encore systématiquement intégrés.
D'autres usages courants, mais incorrects, suppriment complètement le nom ou le symbole
de l'unité pour ne plus garder que le nom ou le symbole du préfixe multiplicateur (par
exemple « 56K » ou « 20 méga »). Cela entraîne cependant de nombreuses ambiguïtés quant
à la nature de cette unité, notamment quand on l'utilise pour exprimer un taux de transfert de
données ou la capacité d'une puce de mémoire : en effet, dans ces deux cas, il est courant
que l'on mesure en bits plutôt qu'en octets (ainsi un débit de connexion de « 20 méga » —
selon l'appellation commerciale — correspond à 2,5 Mo/s, ce qui peut induire en erreur un
utilisateur non averti).
Variantes orthographiques
La langue française pose un problème d'orthographe, relativement à la prononciation de la
voyelle initiale du mot « octet » lorsqu'il suit un préfixe ; on peut donc trouver dans la
littérature les formes suivantes : « kilo-octet » (avec trait d'union) ou « kilooctet » (sans trait
d'union) [réf. souhaitée].
Au Québec, la forme d'usage est sans le trait d'union, sauf lorsqu'on est en présence d'une
lettre doublée[11]
Propriétés
Cette section ne cite pas
suffisamment ses sources (mai 2019).
Pour l'améliorer, ajoutez des
références de qualité et vérifiables
(comment faire ?) ou le modèle
{{Référence nécessaire}} sur les
passages nécessitant une source.
Propriétés de représentation binaire
Un octet peut représenter 28 soit 256 valeurs différentes. La valeur de tout octet peut s'écrire
avec un entier naturel entre 010 et 25510 compris. Elle peut aussi s'écrire avec huit chiffres
binaires, entre 000000002 et 111111112 compris, ou avec deux chiffres hexadécimaux, entre
0016 et FF16 compris. La notation hexadécimale est utilisable dans de nombreux langages
informatiques car elle est compacte et pratique pour noter la valeur d'un ou plusieurs
octet(s).
Un octet peut servir à noter un entier naturel, appelé en informatique « non signé »,
entre 0 et 255 (en base dix). Une autre convention courante, le complément à deux, permet de
noter un entier relatif, ou « signé », entre -128 et +127 compris (en base dix)[c].
De nombreuses conventions existent pour représenter un caractère par un ou plusieurs
octets. On peut notamment citer le codage ISO/CEI 8859-1, très utilisé pour représenter avec
un octet les 10 chiffres, les 26 lettres minuscules, les 26 lettres majuscules, ainsi que les
lettres accentuées et la ponctuation des langues d'Europe occidentale, dont le français. Plus
récent, le codage UTF-8 permet de noter tout caractère avec un à quatre octets. L'article sur le
codage des caractères développe ce thème.
Propriétés de représentation
décimale
Dans certaines applications nécessitant un codage exact des valeurs décimales (par
exemple pour les applications financières), les puissances de 2 peuvent ne pas s'avérer
pratiques. Aussi un octet est parfois utilisé pour stocker jusqu'à deux chiffres décimaux
exactement (entre 0010 et 9910), chacun codé sur un quartet (quatre bits) distinct entre
00002 = 010 et 10012 = 910. Les autres valeurs de quartets peuvent être utilisées pour coder la
position d'une virgule décimale, un signe, l'absence de chiffre significatif à la position
indiquée, ou une autre fonction spéciale (valeur infinie, valeur erronée non numérique, etc.).
Certains calculateurs (et des bibliothèques logicielles de calcul à virgule fixe ou travaillant sur
de très grands entiers ou des valeurs de grande précision) utilisent ce format dit « BCD »,
sigle anglais de binary coded decimal (décimal codé en binaire).
L'usage du codage BCD était populaire sur les anciens systèmes (notamment ceux utilisant
l'EBCDIC) car cela évitait une conversion finale coûteuse pour afficher les nombres à virgule
flottante. De plus ce système était plus pratique au temps où les données étaient entrées
manuellement sur des cartes perforées : pour convertir un nombre BCD en caractères, il
suffisait d'éclater le nombre BCD en deux en n'utilisant qu'un seul quartet par octet pour
représenter le chiffre en décimal, le quartet de poids fort prenant une valeur fixe indiquant
simplement que c'est un chiffre décimal. Les autres valeurs de quartets de poids fort étaient
utilisées pour indiquer que c'était une lettre majuscule, une lettre minuscule ou un autre
symbole ou ponctuation. Aujourd'hui, dans la plupart des systèmes actuels, le codage
EBCDIC des caractères et du BCD pour les valeurs numériques est plus rarement utilisé car la
plupart des calculs se font plus rapidement en représentation binaire de façon matérielle
avec une précision globale prédéfinie (codée sur un nombre fixe d'octets).
Des variantes du système BCD permettent de conserver une représentation précise des
nombres à virgule fixe ou flottante en base dix, tout en permettant une plus grande compacité
de stockage et en rendant les calculs plus rapides. L'astuce consiste à grouper les chiffres
décimaux et les représenter en binaire sur un groupe de plusieurs octets. Par exemple :
tout d'abord la représentation en
quartets s'avère coûteuse en termes
de traitement, et une valeur BCD est
généralement d'abord convertie en
supprimant la séparation en quartets,
pour alors représenter en binaire les
deux chiffres décimaux sur le même
octet ; le calcul est alors simplifié car il
s'effectue par groupe de deux chiffres
à la fois au lieu d'un seul ; cette
représentation laisse un bit de poids
fort inutilisé (mais on peut l'utiliser
comme marqueur pour des valeurs
spéciales) ;
on peut représenter exactement quatre
chiffres décimaux dans un groupe de
deux octets (c'est-à-dire sur 16 bits,
puisque ceux-ci peuvent contenir 216 =
65 536 valeurs différentes) ; avec une
représentation BCD, on stockerait
exactement également quatre chiffres
décimaux, mais les calculs se feraient
uniquement chiffre par chiffre (c'est-à-
dire quatre fois plus lentement) ; cette
représentation laisse deux bits de
poids fort inutilisés (mais on peut les
utiliser comme marqueurs pour des
valeurs spéciales).
on peut représenter exactement sept
chiffres décimaux dans un groupe de
trois octets (c'est-à-dire sur 24 bits,
puisque ceux-ci peuvent contenir 224 =
16 777 216 valeurs différentes) ; avec
une représentation BCD, on ne
stockerait exactement que six chiffres
décimaux ; cette représentation ne
laisse aucun bit inutilisé ;
on peut représenter exactement neuf
chiffres décimaux dans un groupe de
quatre octets (c'est-à-dire sur 32 bits,
puisque ceux-ci peuvent contenir 232 =
4 294 967 296 valeurs différentes) ;
avec une représentation BCD, on ne
stockerait exactement que huit chiffres
décimaux ; cette représentation laisse
deux bits de poids fort inutilisés (mais
on peut les utiliser comme marqueurs
pour des valeurs spéciales). Cette
représentation est souvent utilisée
dans les bibliothèques mathématiques
de calcul sur des nombres de très
grande précision.
Usages
Cette section ne cite pas
suffisamment ses sources (mai 2015).
Pour l'améliorer, ajoutez des
références de qualité et vérifiables
(comment faire ?) ou le modèle
{{Référence nécessaire}} sur les
passages nécessitant une source.
Les processeurs n'opèrent généralement pas sur chaque bit individuellement, mais sur des
groupes de bits. L'habitude de concevoir le matériel pour qu'il traite les bits par huit, ou par
multiples de huit, s'est généralisée depuis les années 1970, si bien qu'aujourd'hui l'octet et
ses multiples sont généralement utilisés comme mesure de la capacité de mémorisation des
mémoires informatiques : mémoire vive, disquette, disque dur, CD-ROM, etc. La taille des
fichiers est aussi mesurée en octets (avec le plus souvent les multiples conventionnels en
binaire).
Le taux de transfert des bus informatiques entre les applications informatiques et
périphériques informatiques locaux est généralement donné en octets par seconde (avec les
multiples normalisés ; voir ci-après). Mais les débits sur les réseaux ou supports de
transmission de données s'expriment plutôt :
en bauds (avec les multiples
normalisés) c'est-à-dire le nombre de
symboles codés par seconde, pour les
technologies matérielles de
modulation de très bas niveau, par
exemple dans les modems, ces
technologies séparant la fréquence
d'échantillonnage en bauds (fortement
liée à la bande passante physique
exprimée en hertz) de la précision
d'échantillonnage exprimée en bits par
symbole (fortement liée au rapport
signal/bruit du support de
transmission exprimé en décibels ou
en bits [réf. nécessaire]) ;
en bits par seconde (avec les multiples
normalisés) pour le débit binaire final
utilisable, résultant du produit du débit
en bauds par le nombre de bits
transmis par symbole, diminué
éventuellement des bits de détection
ou correction d'erreurs ou de
synchronisation.
Bits et octets
Exemples de conversion des bits vers octets (sans normalisation CEI) :
8 bits = 1 octet
1 kilobit = 1 000 bits = 125 octets
1 kibibit = 1 024 bits = 128 octets
512 kibibits = 524 288 bits =
65 536 octets = 64 kibioctets (65 536 /
1 024 kibioctets).
1 mébibit = 1 048 576 bits =
131 072 octets = 128 kibioctets
(131 072 / 1 024 kibioctets).
10 mébibits = 10 485 760 bits =
1 310 720 octets = 1,25 mébioctet
(1 310 720 / 1 0242 mébioctet)
100 mébibits = 104 857 600 bits =
13 107 200 octets = 12,5 mébioctets
(13 107 200 / 1 0242 mébioctet)
Mots
Lorsque le traitement se fait sur plusieurs octets simultanément, notamment deux octets (16
bits) et quatre octets (32 bits), on parle parfois de mot et de double-mot, ou bien de demi-mot
et de mot. La signification de ces termes a tendance à varier avec le contexte, notamment
car en terminologie des langages d'assemblage pour processeurs, le « mot » désigne souvent
la quantité d'information dans un registre de calcul entier pour une opération élémentaire,
cette quantité pouvant aussi dépendre du mode d'adressage utilisé par le processeur à
l'exécution (ou des traditions de programmation pour un système d'exploitation donné), aussi
n'est-il pas recommandé de les utiliser.
Les termes « doublet » (16 bits), « quadlet » (32 bits) et « octlet » (64 bits) sont parfois
utilisés alors pour enlever toute ambiguïté [réf. nécessaire].
Notes et références
Notes
a. Voir l'entrée « mésusage » ([Link]
[Link]/wiki/m%C3%A9susag
e) [archive] sur le Wiktionnaire.
b. Voir l'article sur les préfixes binaires
c. Voir aussi l'article Système binaire.
Références
1. Informations lexicographiques (htt
p://[Link]/lexicographie/Octet/
0) [archive] et étymologiques ([Link]
[Link]/etymologie/Octet/
0) [archive] de « Octet » (sens B) dans
le Trésor de la langue française
informatisé, sur le site du Centre
national de ressources textuelles et
lexicales.
2. [1] ([Link]
definition/kilo-octet) [archive],
LeRobert dico en ligne, définition de
kilo-octet (ou kilooctet).
3. [2] ([Link]
ESPERSO/atanassova/lfa/[Link]
f) [archive], support de cours de
l'Université Paris-Sorbonne
4. Byte ([Link]
ml/B/[Link]) [archive], [Link],
Werner Buchholz et le terme byte.
5. AFNOR : Dictionnaire du multimédia
– Audiovisuel, informatique,
télécommunications, 1996, p. 135.
6. (en) « Transmission control protocol -
DARPA Internet program - Protocol
specifications ([Link]
html/rfc793) [archive] », Request for
comments no 793, septembre 1981
7. « Le binaire, pourquoi faire ! » (http://
[Link]/Util/bin
[Link]) [archive], sur le site de-bric-
et-de-broc.
8. Bureau international des poids et
mesures, Le Système international
d'unités (SI), Sèvres, BIPM, 2019,
9e éd., 216 p. (ISBN 978-92-822-2272-0,
lire en ligne ([Link]
mmon/pdf/si-brochure/[Link]
f) [archive] [PDF]), chap. 3 (« Multiples et
sous-multiples décimaux des unités
SI »), p. 31.
9. « IEC 60027-2:1972/AMD2:1999 |
IEC Webstore ([Link]
h/publication/12253) [archive] », sur
[Link] (consulté le
7 janvier 2021)
10. Voir texteBinary prefix: Legal
disputes (en) .
11. « Liste des symboles ([Link]
[Link]/bdl/gabarit_bdl.asp?t1=1
&id=1873) [archive] », Les sigles,
abréviations et symboles - Liste des
symboles, sur Banque de dépannage
linguistique, Office québécois de la
langue française (consulté le
6 avril 2020).
Voir aussi
Articles connexes
Bit
Boutisme
Byte
Débit binaire
Format de données
Mémoire cache
Ordres de grandeur de quantité de
données
Préfixe binaire
Stockage d'information
Système binaire
Portail de l’informatique
Portail des mathématiques
Ce document provient de
« [Link]
title=Octet&oldid=213129775 ».
La dernière modification de cette page a été faite
le 7 mars 2024 à 10:51. •
Le contenu est disponible sous licence CC BY-SA
4.0 sauf mention contraire.