Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être |
Voilà une source de confusion qui mérite un brin d'explication.
Parmi les données qui sont manipulées dans un ordinateur il y a des tailles en tout genre, notamment celles des zones de mémoire où sont stockées ... d'autres données. Il est essentiel, par exemple, de connaître la longueur d'une chaîne de caractères située dans telle partie de la mémoire, la capacité d'un tampon de mémoire ou bien l'espace occupé par un fichier. Les données étant représentées par des bits une taille est exprimée en nombre de bits, plus souvent en nombre d'octets.
Comme certaines de ces tailles peuvent atteindre des valeurs élevées on est amené à utiliser des préfixes multiplicateurs (kilo pour 1 000, méga pour 1 000 x 1 000 = 1 000 000, etc.) comme pour les mètres ou les grammes. Seulement voilà, une taille est elle-même représentée par une suite de bits. Bien qu'il existe plusieurs possibilités de représentation des nombres dans un ordinateur, la plus efficace consiste à utiliser la numération binaire pure. Une taille exprimée sur n bits aura pour valeur maximum 2n-1. On n'aura donc jamais de tailles correspondant à un nombre rond de milliers de bits ou de millions d'octets puisque 1 000 n'est pas une puissance de 2 (1 000 = 103 = 23 x 53).
Ainsi, avec 8 bits (1 octet) une taille aura une valeur maximum de 255, 511 avec 9 bits et 1 023 avec 10. Attention, compte tenu du zéro cela revient respectivement à 256, 512 et 1 024 valeurs distinctes. Tiens donc, voilà qui est intéressant ! Entre 1 000 et 1 024 la différence n'est que de 2%. Moyennant cette approximation on va pouvoir réconcilier les puissances de 10 et les puissances de 2 et exprimer des tailles avec des mots qui nous sont familiers.
En convenant que kilo vaut 1 024, que méga vaut 1 024 x 1 024 = 1 048 576, etc. on peut exprimer une taille de manière à la fois parlante et précise. Pour avoir la taille à l'unité près il faudra faire les multiplications.
Mais alors, quand on lit un nombre de quelque chose, comment savoir si les kilos sont des vrais kilos ou ces kilos approximatifs ? Il n'y a pas de règle générale, tout dépend de ce qu'on mesure. Quand il s'agit de mémoire interne, aucun doute, il s'agit de kilos dits binaires (1 024). En télétransmissions ou pour indiquer la capacité d'une mémoire externe c'est beaucoup plus flou.
En toute logique il n'y a aucune raison de mesurer une vitesse de téléchargement avec des kilos à 1 024. Pour un disque dur, le fait qu'un secteur contienne 512 octets pourrait inciter à utiliser le kilo binaire pour autant qu'il y ait un nombre pair de secteurs. Quand on passe aux mégas et aux gigas cet argument ne tient plus et les constructeurs utilisent généralement ces préfixes pour leur vraie valeur, le doute jouant en leur faveur.
Cette ambiguïté n'a pas échappé aux organismes de normalisation. La Commission électrotechnique internationale (IEC pour International Electrotechnical Commission) a publié en 1998, puis complété ultérieurement, une norme définissant les préfixes à utiliser. Les noms sont formés en prenant la première syllabe de chaque préfixe SI et en lui suffixant bi pour « binaire ». La liste actuelle est la suivante.
Nom | Symbole | Facteur | SI |
---|---|---|---|
kibi | Ki | 210 = 1 024 | kilo |
mibi | Mi | 220 = 1�048�576 | méga |
gibi | Gi | 230 = 1 073 741 824 | giga |
tébi | Ti | 240 = 1 099 511 627 776 | téra |
pébi | Pi | 250 = 1 125 899 906 842 624 | péta |
exbi | Ei | 260 = 1 152 921 504 606 846 976 | exa |
zébi | Zi | 270 = 1 180 591 620 717 411 303 424 | zetta |
yobi | Yi | 280 = 1 208 925 819 614 629 174 706 176 | yota |
On ne peut pas dire que cette norme ait véritablement bouleversé les habitudes. Pourtant tout le monde gagnerait à ce qu'elle soit largement respectée.