48 votes

Quelle est la différence entre un kibibyte, un kilobit et un kilooctet ?

Cette question m'a amené à m'interroger sur les différences entre ces trois façons de mesurer la taille : a kibibyte , a kilobit et la méthode conventionnelle kilo-octet .

Je comprends que ces mesures ont des usages différents (le taux de transfert de données est mesuré en bits/sec), mais je ne suis pas certain de pouvoir faire la différence entre Mb, MB et MiB.

Voici un commentaire, reproduit ci-dessous, extrait de cette réponse ( souligné par moi ).

Le C64 a 65536 octets de la mémoire vive. Par convention, la taille de la mémoire est spécifiée en kibiBytes , kilobits , ce que les fabricants pensent d'aujourd'hui Octets . Les disques durs utilisent T, G, M et k sur l'étiquette. Windows indique la taille en Ti , Gi , Mi y ki . Et ces 1.44MB floppys ? Ce ne sont ni 1.44MB ni 1,44MiB, mais 1,44 kilokibytes. Soit 1440kiB ou 1'474'560 octets. [ ] Troisièmement

67voto

squircle Points 6625
1 KiB (Kibibyte) = 1,024 B (Bytes) (2^10 Bytes)
1 kb  (Kilobit)  =   125 B (Bytes) (10^3 Bits ÷ (8 bits / byte) = 125 B)
1 kB  (Kilobyte) = 1,000 B (Bytes) (10^3 Bytes)

Il en va de même pour tout préfixe SI ; k (1x10 3 ), M (1x10 6 ), G (1x10 9 ), donc, par extension :

1 MiB (Mebibyte) = 1,048,576 B (Bytes) (2^20 Bytes)
1 Mb  (Megabit)  =   125,000 B (Bytes) (10^6 Bits ÷ (8 bits / byte) = 125,000 B)
1 MB  (Megabyte) = 1,000,000 B (Bytes) (10^6 Bytes)

Les seuls qui sont un peu différents sont les préfixes binaires de la CEI (kibi/mebi/gibi, etc.), parce qu'ils sont en base 2, et non en base 10 (par exemple, tous les nombres sont égaux à 2). quelque chose au lieu de 10 quelque chose ). Je préfère utiliser les préfixes SI parce que je trouve que c'est beaucoup plus facile. De plus, le Canada (mon pays) utilise le système métrique, je suis donc habitué, par exemple, à 1kg = 1000g (ou 1k anything = 1000 base things ). Aucun d'entre eux n'est mauvais ou bon ; assurez-vous simplement de savoir lequel vous utilisez et à quoi il correspond réellement.

Pour apaiser les commentateurs :

1 Byte (B) = 2 nibbles = 8 bits (b)

C'est pourquoi, si vous avez déjà jeté un coup d'œil dans un éditeur hexagonal, tout est divisé en deux caractères hexadécimaux ; chaque caractère hexadécimal a la taille d'un nibble, et il y en a deux par octet. Par exemple, un octet est composé de deux caractères hexadécimaux :

198 (decimal) = C6 (hex) = 11000110 (bits)

11voto

Ben Collins Points 11318

Il existe quelques termes de base qui sont simples et faciles à comprendre :

* A bit      (b)   is the smallest unit of data comprised of just {0,1}
* 1 nibble   (-)   = 4 bits (cutesy term with limited usage; mostly bitfields)
* 1 byte     (B)   = 8 bits (you could also say 2 nibbles, but that’s rare)

Pour convertir des bits et des octets (avec n'importe quel préfixe), il suffit de multiplier ou de diviser par huit ; c'est très simple.

Les choses se compliquent un peu, car il existe deux systèmes de mesure des grands groupes de données : décimal y binaire . Pendant des années, les programmeurs et les ingénieurs ont utilisé les mêmes termes pour désigner les deux, mais cette confusion a fini par susciter quelques inquiétudes. les tentatives de normalisation un ensemble approprié de préfixes.

Chaque système utilise un ensemble similaire de préfixes qui peuvent être appliqués aux bits ou aux octets. Chaque préfixe commence de la même manière dans les deux systèmes, mais les préfixes binaires ressemblent ensuite à un langage de bébé.

Le système décimal est la base 10, à laquelle la plupart des gens sont habitués et qu'ils utilisent avec aisance parce que nous avons 10 doigts. Le système binaire est en base 2, auquel la plupart des ordinateurs sont habitués et qu'ils utilisent facilement parce qu'ils ont deux états de tension.

Le système décimal est évident et facile à utiliser pour la plupart des gens (il est assez simple de faire des multiplications dans notre tête). Chaque préfixe augmente de 1 000 (la raison en est tout autre).

Le système binaire est beaucoup plus difficile à utiliser pour la plupart des non-informaticiens, et même les programmeurs sont souvent incapables de multiplier des nombres arbitrairement grands dans leur tête. Néanmoins, il s'agit simplement de multiples de deux. Chaque préfixe augmente de 1 024. Un "K" est 1 024 parce que c'est la puissance de deux la plus proche du "k" décimal de 1 000 (c'est peut-être vrai à ce stade, mais la différence augmente rapidement avec chaque préfixe successif).

Les nombres sont les mêmes pour les bits et les octets qui ont le même préfixe.

* Decimal:
* 1 kilobyte (kB)  = 1,000 B  = 1,000^1 B           1,000 B
* 1 megabyte (MB)  = 1,000 KB = 1,000^2 B =     1,000,000 B
* 1 gigabyte (GB)  = 1,000 MB = 1,000^3 B = 1,000,000,000 B

* 1 kilobit  (kb)  = 1,000 b  = 1,000^1 b           1,000 b
* 1 megabit  (Mb)  = 1,000 Kb = 1,000^2 b =     1,000,000 b
* 1 gigabit  (Gb)  = 1,000 Mb = 1,000^3 b = 1,000,000,000 b

* …and so on, just like with normal Metric units meters, liters, etc.
* each successive prefix is the previous one multiplied by 1,000

* Binary:
* 1 kibibyte (KiB) = 1,024 B  = 1,024^1 B           1,024 B
* 1 mebibyte (MiB) = 1,024 KB = 1,024^2 B =     1,048,576 B
* 1 gibibyte (GiB) = 1,024 MB = 1,024^3 B = 1,073,741,824 B

* 1 kibibit  (Kib) = 1,024 b  = 1,024^1 b =         1,024 b
* 1 mebibit  (Mib) = 1,024 Kb = 1,024^2 b =     1,048,576 b
* 1 gibibit  (Gib) = 1,024 Mb = 1,024^3 b = 1,073,741,824 b

* …and so on, using similar prefixes as Metric, but with funny, ebi’s and ibi’s
* each successive prefix is the previous one multiplied by 1,024

Remarquez que la différence entre le système décimal et le système binaire est d'abord minime (à 1K, il n'y a que 24 octets, soit 2,4 % d'écart), mais qu'elle s'accroît à chaque niveau (à 1G, il y a >70MiB, soit 6,9 % d'écart).

En règle générale, les dispositifs matériels utilisent des unités décimales (bits ou octets) tandis que les logiciels utilisent des unités binaires (généralement des octets).

C'est la raison pour laquelle certains fabricants, en particulier les fabricants de disques durs, aiment utiliser des unités décimales, car cela donne l'impression que la taille du disque est plus importante, alors que les utilisateurs sont frustrés lorsqu'ils découvrent que le disque a une taille inférieure à celle qu'ils attendaient lorsque Windows et d'autres indiquent la taille en binaire. Par exemple, 500GB = 476GiB, alors que le disque est conçu pour contenir 500GB et étiqueté comme tel, Mon ordinateur affiche la valeur binaire de 476 Go (mais sous la forme "476 Go"), de sorte que les utilisateurs se demandent où sont passés les 23 Go restants. (Les fabricants de disques ajoutent souvent une note de bas de page aux paquets indiquant que la "taille formatée est inférieure", ce qui est trompeur car la surcharge du système de fichiers n'est rien comparée à la différence entre les unités décimales et binaires).

Les dispositifs de mise en réseau utilisent souvent des bits au lieu d'octets pour des raisons historiques, et les FAI aiment souvent faire de la publicité en utilisant des bits parce que cela fait paraître la vitesse des connexions qu'ils offrent plus importante : 12Mibps au lieu de 1,5MiBps. Ils mélangent même souvent les bits et les octets, le décimal et le binaire. Par exemple, vous pouvez vous abonner à ce que le FAI appelle une ligne "12MBps", pensant que vous recevez 12MiBps mais ne recevant en fait que 1,43MiBps (12,000,000/8/1024/1024).

-4voto

Fred Points 1

Certaines réponses ne sont pas exactes.

Prenons d'abord quelques notes :

Le préfixe "kilo" signifie 1 000. Si l'on ajoute le préfixe "kilo" à quelque chose, cela signifie qu'il y a 1 000 exemplaires de cette chose. Il en va de même pour "mega" ou million, "giga" ou milliard, "tera" ou billion, etc.

La raison pour laquelle 1 024 existe au lieu de 1 000 est due à la manière dont fonctionne l'arithmétique binaire. Comme son nom l'indique, l'arithmétique binaire est un système de base 2 (elle comporte deux chiffres : 0 et 1). Il ne peut effectuer des opérations arithmétiques qu'avec deux chiffres, contrairement au système de base 10 que nous utilisons quotidiennement (0, 1, 2... 9), qui comporte dix chiffres.

Pour atteindre le nombre 1 000 ( kilo ) en utilisant l'arithmétique binaire, il est nécessaire d'effectuer un calcul en virgule flottante. Cela signifie qu'il faut porter un chiffre binaire à chaque opération jusqu'à ce que l'on atteigne 1 000. Dans le système en base 10, 1 000 = 10 3 (on élève toujours 10 à une puissance en base 10), un calcul très facile et rapide à effectuer par un ordinateur sans "restes", mais dans le système en base 2, il n'est pas possible d'élever 2 (on élève toujours 2 à une puissance en base 2) à n'importe quel nombre entier positif pour obtenir 1 000. Il faut utiliser une opération en virgule flottante ou une addition longue, ce qui prend plus de temps à exécuter que le calcul sur les nombres entiers 2 10 \= 1024.

Vous avez peut-être remarqué que 2 10 \= 1 024 est très proche de 1 000 et 1 024 à 1 chiffre significatif est 1 000 (une très bonne approximation), et à l'époque où la vitesse de l'unité centrale était lente comme un vieux chien et où la mémoire était très limitée, c'était une approximation assez décente et très facile à utiliser, sans parler de la rapidité d'exécution.

C'est pour cette raison que les termes avec les préfixes "kilo", "méga", "giga", etc., sont restés avec des chiffres non exacts (1 024, 2 048, 4 096, etc.). Ils n'ont jamais été censés être des nombres exacts, mais des approximations binaires de nombres en base 10. Ils sont simplement apparus comme des mots de jargon utilisés par les "techniciens".

Pour compliquer encore les choses, JEDEC ont créé leurs propres normes pour les unités utilisées dans les circuits de mémoire à semi-conducteur. Comparons certaines des unités JEDEC à SI (standard international) :

Kb = Kilobit (JEDEC, 1 024 bits ; notez le "K" majuscule et le "b" minuscule)
kB = kiloBit (SI, 1 000 bits ; notez le "k" minuscule et le "B" majuscule)

b = bit (JEDEC, noter le "b" minuscule)
b = ? ?? (Le SI ne définit pas le mot "bit", son utilisation peut donc être arbitraire)

B = octet (JEDEC, 8 bits ; notez le "B" majuscule)
B = ? ??? (Le SI ne définit pas le mot "byte" et "B" est utilisé pour "Bel" [comme dans DéciBel])

KB = kilo-octet (JEDEC, 1 024 octets ; notez les majuscules "K" et "B")
kb = kilo-octet (SI, 1 000 octets ; noter l'utilisation du "k" minuscule et du "B" minuscule)

Le fait est que les préfixes utilisés diffèrent d'un endroit à l'autre, avec des définitions différentes. Il n'y a pas de règle absolue quant à celui que vous devez utiliser, mais soyez cohérent avec celui que vous utilisez.

En raison du vote négatif, permettez-moi de préciser pourquoi vous ne pouvez pas faire 1 000 en binaire en l'élevant à un nombre entier positif.

Système binaire :

+----------------------------------------------------------------------------------+
| 1 024ths | 512ths | 256ths | 128ths | 64ths | 32nds | 16ths | 8ths | 4s | 2s | 0 |
+-----------------------------------------------------------------------------------

Remarquez que dans le système binaire, les colonnes doublent à chaque fois. Cela contraste avec le système en base 10 qui augmente de 10 à chaque fois :

+--------------------------------------------------------------------------+
| 1 000 000ths | 100 000ths | 10 000ths | 1 000ths | 100ths | 10s | 1s | 0 |
+--------------------------------------------------------------------------+

Les 10 premières puissances en binaire (base 2) sont :

2 0 \= 1
2 1 \= 2
2 2 \= 4
2 3 \= 8
2 4 \= 16
2 5 \= 32
2 6 \= 64
2 7 \= 128
2 8 \= 256
2 9 \= 512
2 10 \= 1 024

Comme vous pouvez le constater, il n'est pas possible d'élever le 2 binaire à un nombre entier positif quelconque pour atteindre 1 000.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X