Préfixe binaire

Les préfixes binaires sont souvent utilisés lorsqu’on a affaire à de grandes quantités d’octets. Ils sont dérivés, tout en étant différents, des préfixes du Système international d'unités (kilo-, méga-, giga- et ainsi de suite).

Pour les articles homonymes, voir préfixe et binaire.

La raison d’être de ces préfixes binaires est d’éviter la confusion de valeur avec les préfixes SI.

Du fait que les capacités de mémoires d’ordinateurs sont des puissances de deux ou des multiples de telles puissances, l’utilisation de puissances de 1 024 = 210 comme préfixes pour de telles capacités et, de façon dérivée, pour toutes les tailles de programmes et de supports informatiques, est venue naturellement aux informaticiens. Le problème est que les premiers informaticiens n’ont pas éprouvé le besoin d’inventer de nouveaux préfixes ; ils ont simplement utilisé les préfixes SI en changeant légèrement leur valeur (par exemple kilo → 1 024 au lieu de 1 000). L’habitude en est ensuite restée.

Si l’erreur ainsi faite est faible pour les premières capacités mémoires qui s’exprimaient en ko (2,4 %), elle devient difficilement tolérable dans le cas des capacités actuelles qui s’expriment en Go (7,4 %), voire en To (10 %).

C’est la raison pour laquelle le besoin s’est fait sentir de créer les préfixes binaires. Bien qu’ils existent depuis 1998 (voir ci-dessous : normes), certains informaticiens sont réticents à utiliser ces préfixes. Donc les deux systèmes cohabitent actuellement, ce qui permet d’entretenir une confusion pour le grand public. D’autant plus que les vendeurs de disques dur, CD et DVD ont bien compris leur intérêt d’utiliser les préfixes SI avec leurs vraies valeurs : ils suivent ainsi la norme de 1998, mais ceux de leurs acheteurs qui ne la suivent pas croient acheter des disques de plus grandes capacités que ce qui est indiqué.

Une autre pratique des informaticiens a été de raisonner en adoptant l’octet pour unité implicite et donc d’abréger les préfixes : k, M, et G pour kilooctet, mégaoctet et gigaoctet. Un terme tel que « trois mégaoctets » est parfois abrégé, de façon incorrecte selon les normes, en « 3 M » au lieu de « 3 Mo », ce qui entretient là aussi une certaine confusion.

Normes

En 1999, le Comité technique 25 (Quantités et unités) de la Commission électrotechnique internationale (CEI) a publié l’Amendement 2 de la norme CEI 60027-2 : Symboles littéraux à utiliser en électrotechnique – Deuxième partie : Télécommunications et électronique. Cette norme, d’abord publiée en 1998, introduit les préfixes kibi-, mébi-, gibi-, tébi-, pébi- et exbi-. Les noms sont formés en prenant la première syllabe de chaque préfixe SI et en lui suffixant bi pour « binaire ». La norme stipule également que les préfixes SI ont toujours leurs valeurs de puissances de 10 et ne doivent jamais être utilisés comme puissances de 2.

Largement inspiré par la CEI, l’IEEE a adopté ces préfixes dans le standard IEEE 1541 et le CENELEC en a fait une norme européenne sous la référence EN 60027-2:2007[1].

Dans la deuxième version parue en 2004, les préfixes CEI s’arrêtaient initialement à exbi-, correspondant au préfixe SI exa-. Les deux autres préfixes SI zetta- (1021) et yotta- (1024) seront « traduits » un an plus tard lors de la publication de la troisième version.

L’usage de cette norme ne s’est pas encore généralisé. Malgré tout, les dernières versions de certains logiciels, voire de systèmes d’exploitations (comme Ubuntu à partir de la version 10.10 et Mac OS X à partir de Snow Leopard), en tiennent maintenant compte. Par contre, d'autres comme Microsoft Windows continuent d'utiliser des valeurs binaires avec des préfixes SI.

Tableaux des préfixes binaires et décimaux

Voici à gauche le tableau des préfixes binaires et à droite celui des préfixes décimaux, pour comparaison.

Préfixes binaires (préfixes CEI)
Nom Symbole 210a = facteur a
kibi Ki 210 = 1 024 1
mébi Mi 220 = 1 048 576 2
gibi Gi 230 = 1 073 741 824 3
tébi Ti 240 = 1 099 511 627 776 4
pébi Pi 250 = 1 125 899 906 842 624 5
exbi Ei 260 = 1 152 921 504 606 846 976 6
zébi Zi 270 = 1 180 591 620 717 411 303 424 7
yobi Yi 280 = 1 208 925 819 614 629 174 706 176 8
Préfixes décimaux (préfixes SI)
Nom Symbole 103a = facteur a Erreur Erreur inverse
kilo k 103 = 1 000 1 2 % -2,3%
méga M 106 = 1 000 000 2 5 % -4,6%
giga G 109 = 1 000 000 000 3 7 % -6,9%
téra T 1012 = 1 000 000 000 000 4 10 % -9%
péta P 1015 = 1 000 000 000 000 000 5 13 % -11%
exa E 1018 = 1 000 000 000 000 000 000 6 15 % -13%
zetta Z 1021 = 1 000 000 000 000 000 000 000 7 18 % -15%
yotta Y 1024 = 1 000 000 000 000 000 000 000 000 8 21 % -17%

Dans ce deuxième tableau, l’erreur indiquée dans l'avant dernière colonne est celle effectuée quand on utilise un préfixe décimal à la place d’un préfixe binaire (et non le contraire). Si cette erreur n’est que de 2 % pour kilo au lieu de kibi, ce qui est parfois supportable, elle atteint 7 % pour giga/gibi, et même presque 10 % pour téra/tébi.

Ce rapprochement entre préfixes décimaux et binaires provient d'une coïncidence arithmétique qui fait que 1 024 = 210 est proche de 1 000 = 103, à 2,4 % près. Cette coïncidence permet plus généralement d'estimer les puissances successives de 2 à partir des puissances successives de 10. Cela permet de mieux apprécier l'ordre de grandeur de chaque puissance de deux, voire de trouver une approximation en notation décimale, pour des exposants pas trop élevés.

La formule 210a + b ≈ 2b103a donne une bonne précision pour les exposants « 10a + b » (puissance de 2) inférieurs à 50 environ, c'est-à-dire pour les exposants « 3a » (puissance de 10) inférieurs à 15 environ. Pour les exposants « 10a + b » (puissance de 2) inférieurs à 300 environ, c'est-à-dire pour les exposants « 3a » (puissance de 10) inférieurs à 90 environ, « 3a » est toujours une estimation satisfaisante pour l'ordre de grandeur, c'est-à-dire pour le nombre de zéros à inscrire après le « 1 ».

Pour a = 5 et b = 3 par exemple, l'approximation donne : 253 ≈ 8 × 1015. Or, si 1015 reste un bon ordre de grandeur, la valeur réelle de 253 est plus proche de 9 × 1015.

Pour les exposants « 10a + b » (puissance de 2) supérieurs à 300 environ, c'est-à-dire pour les exposants « 3a » (puissance de 10) supérieurs à 90 environ, l'approximation devient de moins en moins précise ; l'ordre de grandeur se décale progressivement pour atteindre un écart d'une magnitude (un zéro) vers « 3a » (puissance de 10) = 300 environ.

Ainsi, pour a = 100 et b = 0 par exemple, l'écart relatif entre 21000 et 10300 est d'environ

Dans les deux tableaux ci-dessus, « b » est toujours égal à 0, « a » varie de 1 à 8. La valeur de « a » est indiquée dans la quatrième colonne de chacun des deux tableaux. La formule utilisée est rappelée dans le titre de la colonne précédente contenant également la valeur du résultat.

Usage historique

Selon chaque informaticien et (ou) électronicien, les préfixes SI prenaient le sens des puissances de 2 (valeurs du tableau de gauche de la section précédente) ou de 10 (valeurs du tableau de droite de la section précédente). Ces guerres de clochers sont toujours d’actualité et entretiennent la confusion qui en découle.

Les fabricants de périphériques de stockage ne s'y trompent pas et utilisent habituellement les préfixes SI, le nombre résultant étant le plus grand. Ainsi un disque dur de 30 Go a une capacité de 30 × 109 octets, soit environ 28 × 230 octets ou 28 Gio[2]. En télécommunications, une connexion à 1 Mbit/s transfère 106 bits par seconde. Cependant, dans la hiérarchie numérique plésiochrone, les lignes E1, dites 2 Mbit/s correspondent en réalité à 2 048 000 bit/s (soit 32 canaux de 64 kbit/s).

Parfois les deux systèmes peuvent se mélanger. Pour les fabricants de disquettes, le préfixe « M » ne signifiait ni 1 000 × 1 000, ni 1 024 × 1 024. La disquette standard 1,44 MB a une capacité de 1,44 × 1 000 × 1 024 octets.

Parfois le symbole « K » est utilisé à la place du symbole « k », essentiellement parce que le système métrique n'a pas été assimilé par tous les anglo-saxons. Certains estiment que « k » correspond au préfixe SI en puissance de dix et que « K » correspond au préfixe en puissance de deux. Ces deux types d’usages sèment eux aussi la confusion. Le SI a refusé « K », qui correspond au symbole du kelvin.

Il peut y avoir également confusion au niveau des symboles des unités de mesure d’information elles-mêmes, ceux-ci n’étant pas définis univoquement. La pratique recommandée est « b » ou « bit » pour le bit, « o » pour l’octet et « B » pour le byte. Les unités « b » et « B » ne sont pas reconnues par le SI. Dans ce système, « B » est le symbole du bel et « b » le symbole du barn. L’utilisation du « O » (« o » majuscule) pour « octet » n'est également pas reconnue par le SI à cause du risque de confusion avec le zéro.

Notes et références

  1. (en) EN 60027-2:2007 « Copie archivée » (version du 17 juin 2008 sur l'Internet Archive), Informations sur la norme européenne.
  2. Plus précisément : 27,939 677 238 464 3 Gio.

Voir aussi

Articles connexes

Liens externes

  • Portail de l’informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.