Les bits, bytes, octets et autres multiples tel que Gio, Go et GB


Avec toutes ces différentes unités il n’est parfois pas simple de s’y retrouver… J’ai donc décidé de faire quelques recherches pour comprendre un peu tout ça et vous le faire partager !

Partons du plus simple et du plus petit, le bit. C’est la plus petite unité d’un système informatique, elle est composée (le plus généralement) de 0 et de 1. Le 0 correspond à « fermé » ou « faux » pour l’ordinateur et le 1 à « ouvert » ou « vrai ». C’est un élément binaire. Un système numérique (comme un ordinateur) ne traite que des informations qui sont réduites à l’état de bits. Ce sont aussi des chaînes de bits qui permettent de « contenir » l’information. (Bit venant de l’anglais Binary Digit)

Bien, maintenant les octets, 8 bits mis bout à bout de la sorte :

00000001

…définissent un octet, ça paraît logique, oct- signifiant 8. Il y a dans un octet 2^8 = 256 possibilités différentes de codage. (De manière générale pour avoir le nombre de possibilité il faut prendre 2 à la puissance n correspondant au nombre de bits.) Les octets sont ensuite démultipliés suivant les multiples habituels : kilo, mega, giga etc.. Cependant, il y a un hic ! En effet, pour les informaticiens (barbus) un kilo-octet est égal à 1024 octets alors que dans le système international des unités le préfixe « kilo » signifie 1000 (10^3). Et c’est là le grand débat de savoir lequel est le vrai entre 1000 et 1024… Et la réponse est un peu des deux !

Tout d’abord, d’où vient ce 1024 ? Et bah des puissances de 2 dont je parlais plus haut, en effet à la base pour les informaticiens les préfixes comme « kilo » ne provenait pas des puissances de 10 (10^3 = 1000) mais des puissances de 2 (2^10 =1024). Et donc pour eux, 1 ko était égal à 1024 octets, c’était une sorte de tradition. Cependant, c’était totalement en désaccord avec le système SI (des multiples et autres unités internationales), c’est pourquoi ces multiples ont été normalisés en 1998 par la Commission électrotechnique internationale de telle sorte que :

1 kilooctet (ko) = 10^3 octets = 1000 octets

1 kibioctet (Kio) = 2^10 octets = 1024 octets

et de même pour les autres multiples que vous pouvez retrouver en cliquant ici. Les préfixes comme les kibioctets sont appelés les « préfixes binaires » les autres sont tout simplement des multiples de l’octet conforme au système international.

Cependant les deux systèmes coexistent, de nombreux systèmes continuent à afficher des valeurs binaires en utilisant les préfixes décimaux et de manière générale, les préfixes binaires sont peu employés… Par exemple sur mon ordinateur sous Windows 10, si je regarde les propriétés de mon disque je vois ceci :

Screen w10

Or si je prends le nombre d’octets (90 990 960 640 octets) et que je le divise par 10^9 (soit un giga) j’obtiens environ 91,0 gigaoctets alors que si je prends ce même nombre et que je le divise par 2^30 (un gibi, un giga binaire) j’obtiens mes 84,7 gigaoctets annoncé par Windows qui sont en fait des gibioctets. Eh ouais, c’est pas simple…

Il est d’ailleurs intéressant de savoir que les constructeurs de disques durs utilisent souvent cette confusion en inscrivant une capacité de 100 Go par exemple (donc compté en puissance de 10) or 100 Go est environ égal à 93.13 Gio. Ceci permettant d’afficher des capacités plus importante à la vente. Voici un comparatif que j’ai trouvé sur Wikipedia concernant l’écart de capacité entre les préfixes binaires et décimaux.

776px-Binaryvdecimal_fr.svg

By Dirac (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

Bien, il ne nous reste plus qu’à évoquer le cas des Bytes… Parce que, comme si c’était pas déjà assez compliqué comme ça, il existe une autre « unité » avec un nom très ressemblant aux bits mais qui n’est pas du tout la même chose. Pour faire simple, dans la plupart des cas, de nos jours : 1 Byte (symbole B) est égal à un octet soit 8 bits.  Cependant, ça n’a pas toujours été le cas, il existait dans le passé des processeurs qui fonctionnaient avec des bytes de 6,7 ou 9 bits. On peut d’ailleurs encore trouver aujourd’hui des équipements industriels fonctionnant avec des bytes de 4 bits par exemple. Mais bon, comme je l’ai dit dans la plupart des cas aujourd’hui 1 byte = 1 octet.

Pour finir, voici un petit résumé :

1 bit (b) = ne peut contenir que 0 ou 1

1 octet (o) = 8 bits = 1 byte (B)

1000 octets = 1 kilooctet (ko)

1024 octets = 1 kibioctet (Kio)

Voilà j’espère que ceci aura pu vous être utile ! N’hésitez pas à signaler toute erreur dans les commentaires.

P.