Octet

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}
Révision datée du 6 juillet 2023 à 10:21 par >Elnon (Virgule en trop : c'est le codage qui s'appuie sur le système binaire.)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Modèle:Voir homonymes Modèle:Confusion Modèle:À sourcer

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.

En informatique, un octet est un multiplet de Modèle:Unité codant une information<ref name=cnr>Modèle:CNRTL.</ref>. Dans ce système de codage s'appuyant sur le système binaire, un octet permet de représenter 28 nombres, soit Modèle:Nb différentes. Un octet permet de coder des valeurs numériques ou jusqu'à Modèle:Nb différents.

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 stockageModèle:Etc). À cette fin, on utilise couramment des multiples de l'octet, comme le kilooctet (Modèle:Unité<ref>[1], LeRobert dico en ligne, définition de kilo-octet (ou kilooctet).</ref>), le mégaoctet (Modèle:Unité), le gigaoctet (Modèle:Unité) ou le téraoctet (Modèle:Unité)<ref>[2], support de cours de l'Université Paris-Sorbonne</ref>.

Cette unité permet aussi de quantifier la rapidité de transfert d'informations en octets par seconde (ou ses multiples : Ko/s, Mo/sModèle: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 Modèle:Unité<ref name=cnr/> qui permettent de coder Modèle:Nb différents<ref name=cnr/>, 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

Modèle:Section à sourcer 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 Modèle:Lang 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 Modèle:Lang, littéralement « bouchée », pour éviter toute confusion avec bit par élision du e final<ref>Byte, catb.org, Werner Buchholz et le terme byte.</ref>.

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 Modèle:Lang, alors que sur les architectures « grand public » en français, on l'exprime en octets. La généralisation des Modèle:Lang 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 Modèle:Lang par une confusion bytes/octets lors de la traduction.

Aujourd'hui, pour le Dictionnaire du multimédia – Audiovisuel, informatique, télécommunications<ref>AFNOR : Dictionnaire du multimédia – Audiovisuel, informatique, télécommunications, 1996, p. 135.</ref> de l'AFNOR, le byte est « l'unité d'information correspondant à un octet, soit Modèle:Nb ». La normalisation IEC 80000-13 va dans le même sens : normaliser la taille des bytes à 8 bits. C'est de cette « normalisation » à Modèle:Unité 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 « Modèle:Lang » ; tandis que si l'on veut exprimer l'unité d'adressage indépendamment du nombre de bits, on utilise le mot « Modèle:Lang ». Ainsi la description formelle d’un langage de programmation utilisera sciemment le mot Modèle:Lang si le langage ne nécessite pas qu’un Modèle:Lang ait une taille d’un octet. C’est par exemple le cas du langage C, où un Modèle:Lang 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 Modèle:RFC 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 « Modèle:Lang » 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 propreModèle:Refsou (par exemple : volt dont le symbole est Modèle:Unité, ou watt dont le symbole est Modèle:Unité). Cette question n'est cependant pas tranchée, les unités d'information ne faisant pas partie du SI.

Multiples

Modèle:Voir

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<ref group="alpha">Voir l'entrée « mésusage » sur le Wiktionnaire.</ref>
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 »Modèle:Etc ne représentaient pas une puissance d'un nombre en base dix (103 = Modèle:Nb), mais une puissance d'un nombre en Modèle:Nobr (Modèle:Nobr. 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 Modèle:Nobr<ref group=alpha>Voir l'article sur les préfixes binaires</ref>,<ref>« Le binaire, pourquoi faire ! », sur le site de-bric-et-de-broc.</ref> : les « Modèle:Page h' », « mébi », « gibi »Modèle:Etc<ref>Modèle:Ouvrage.</ref>.

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 Modèle:Nb afin de le distinguer du multiple Modèle:Nb 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 Modèle:Nobr<ref>Modèle:Lien web</ref> :

  • kibi pour « kilo binaire » ;
  • mébi pour « ga binaire » ;
  • gibi pour « giga binaire » ;
  • tébi pour « ra binaire » ;
  • ainsi de suite.

Les préfixes binaires ont la relation d'ordre suivante :

1 kibioctet (Modèle:Nb) = 210 octets = Modèle:Nb = Modèle:Nb
1 mébioctet (Modèle:Nb) = 220 octets = Modèle:Nb = Modèle:Nb
1 gibioctet (Modèle:Nb) = 230 octets = Modèle:Nb = Modèle:Nb
1 tébioctet (Modèle:Nb) = 240 octets = Modèle:Nb = Modèle:Nb
1 pébioctet (Modèle:Nb) = 250 octets = Modèle:Nb = Modèle:Nb
1 exbioctet (Modèle:Nb) = 260 octets = Modèle:Nb = Modèle:Nb
1 zébioctet (Modèle:Nb) = 270 octets = Modèle:Nb = Modèle:Nb
1 yobioctet (Modèle:Nb) = 280 octets = Modèle:Nb = Modèle:Nb


Les préfixes décimaux quant à eux sont identiques aux préfixes du Système international d'unités :

1 kilooctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 mégaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 gigaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 téraoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 pétaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 exaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 zettaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 yottaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 ronnaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb
1 quettaoctet (Modèle:Nb) = Modèle:Unité = Modèle:Nb = Modèle:Nb

Confusions entre multiples binaires et décimaux

Fichier:Écrit Go au lieu de Gio avec Windows Vista.png
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 « Modèle:Unité » représentent Modèle:Nb), ces logiciels vont indiquer soit correctement « Modèle:Unité », soit incorrectement « Modèle:Unité ». Plus la capacité des supports augmente plus l'écart entre les valeurs attendues et constatées devient important : ainsi un disque dur de « Modèle:Unité » (valeur indiquée par le constructeur et qui est conventionnellement correcte) a une capacité affichée dans les systèmes d'exploitation de Modèle:Nobr, fréquemment notée de façon erronée « Modèle:Unité », soit un écart de 9 %.

Ces confusions ont été à l'origine de plusieurs actions en justice, notamment aux États-Unis<ref>Voir Modèle:Lien.</ref>.

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 Modèle:Incise 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 à Modèle:Unité, 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)Modèle:Refsou.

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<ref>Modèle:Lien web.</ref>

Propriétés

Modèle:Section à sourcer

Propriétés de représentation binaire

Un octet peut représenter 28 soit Modèle:Nobr 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é », Modèle:Nobr (en base dix). Une autre convention courante, le complément à deux, permet de noter un entier relatif, ou « signé », entre Modèle:Nobr (en base dix)<ref group=alpha>Voir aussi l'article Système binaire.</ref>.

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 Modèle:Nobr minuscules, les Modèle:Nobr 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 Modèle:Nobr peuvent ne pas s'avérer pratiques. Aussi un octet est parfois utilisé pour stocker jusqu'à deux chiffres décimaux exactement (entre Modèle:Nobr), chacun codé sur un quartet (quatre bits) distinct entre Modèle:Nobr et Modèle:Nobr. 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ériqueModèle: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 = Modèle:Nb 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 Modèle:Nobr, puisque ceux-ci peuvent contenir 224 = Modèle:Unité 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 Modèle:Nobr, puisque ceux-ci peuvent contenir 232 = Modèle:Unité 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

Modèle:Section à sourcer 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-ROMModèle: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 Modèle:Refnec) ;
  • 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) :

Mots

Lorsque le traitement se fait sur plusieurs octets simultanément, notamment deux octets (16 bits) et quatre octets (Modèle:Nobr), 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.

Modèle:Refnec.

Notes et références

Notes

Modèle:Références

Références

Modèle:Références

Voir aussi

Articles connexes

Modèle:Colonnes

Modèle:Portail