Esta pregunta me hizo preguntarme sobre las diferencias entre estas tres formas de medir el tamaño: un kibibyte , un kilobit y el kilobyte convencional.
Entiendo que estas mediciones tienen diferentes usos (la velocidad de transferencia de datos se mide en bits / segundo), pero no estoy muy seguro de si puedo distinguir la diferencia entre Mb y MB y MiB.
Aquí hay un comentario, reproducido a continuación, tomado de esta respuesta ( énfasis mío ).
El C64 tiene 65536 bytes de RAM. Por convención, el tamaño de la memoria se especifica en kibiBytes , las tasas de transferencia de datos en kilobits y el almacenamiento masivo en lo que sea que los fabricantes piensen en Bytes . Los discos duros usan T, G, M y k en la etiqueta, Windows informa el tamaño en Ti , Gi , Mi y ki . ¿Y esos disquetes de 1.44MB? Esos no son 1.44MB ni 1.44MiB, son 1.44 kilokibibytes. Eso es 1440 kB o 1'474'560 bytes. - Tercero
fuente
Respuestas:
Es lo mismo con cualquier prefijo SI;
k
(1x10 3 ),M
(1x10 6 ),G
(1x10 9 ), entonces, por extensión:Los únicos que son un poco diferentes son los Prefijos Binarios IEC (kibi / mebi / gibi, etc.), porque están en la base 2, no en la base 10 (por ejemplo, todos los números equivalen a 2 algo en lugar de 10 algo ). Prefiero simplemente usar los prefijos SI porque me parece mucho más fácil. Además, Canadá (mi país) usa el sistema métrico, por lo que estoy acostumbrado, por ejemplo
1kg = 1000g
(o1k anything = 1000 base things
). Ninguno de estos es incorrecto o correcto; solo asegúrate de saber cuál estás usando y a qué equivale realmente.Para apaciguar a los comentaristas:
Por eso, si alguna vez has echado un vistazo en un editor hexadecimal, todo se divide en dos caracteres hexadecimales; cada carácter hexadecimal es del tamaño de un mordisco, y hay dos por byte. Por ejemplo:
fuente
500GB (box) = 465.7GiB (computer)
(y así es como te atrapan).Hay algunos términos básicos que son simples y fáciles de entender:
Para convertir entre bits y bytes (con cualquier prefijo), simplemente multiplique o divida por ocho; Agradable y simple.
Ahora, las cosas se vuelven un poco más complicadas porque hay dos sistemas de medición de grandes grupos de datos: decimal y binario . Durante años, los programadores e ingenieros de computadoras utilizaron los mismos términos para ambos, pero la confusión eventualmente provocó algunos intentos de estandarizar un conjunto adecuado de prefijos.
Cada sistema utiliza un conjunto similar de prefijos que se pueden aplicar a bits o bytes. Cada prefijo comienza de la misma manera en ambos sistemas, pero los binarios suenan como una charla infantil después de eso.
El sistema decimal es base 10, al que la mayoría de las personas está acostumbrada y se siente cómodo porque tenemos 10 dedos. El sistema binario es base-2 al que la mayoría de las computadoras están acostumbradas y cómodas porque tienen dos estados de voltaje.
El sistema decimal es obvio y fácil de usar para la mayoría de las personas (es lo suficientemente simple como para multiplicarlo en nuestras cabezas). Cada prefijo aumenta en 1,000 (la razón de esto es un asunto completamente diferente).
El sistema binario es mucho más difícil de usar para la mayoría de las personas que no usan computadoras, e incluso los programadores a menudo no pueden multiples números arbitrariamente grandes en sus cabezas. Sin embargo, es una simple cuestión de ser múltiplos de dos. Cada prefijo aumenta en 1.024. Una "K" es 1,024 porque esa es la potencia más cercana de dos a la "k" decimal de 1,000 (esto puede ser cierto en este punto, pero la diferencia aumenta rápidamente con cada prefijo sucesivo).
Los números son los mismos para bits y bytes que tienen el mismo prefijo.
Tenga en cuenta que la diferencia entre el sistema decimal y binario comienza pequeña (a 1K, son solo 24 bytes, o 2.4% de diferencia), pero crece con cada nivel (a 1G, son> 70MiB, o 6.9% de diferencia).
Como regla general, los dispositivos de hardware usan unidades decimales (ya sean bits o bytes) mientras que el software usa binarios (generalmente bytes).
Esta es la razón por la que a algunos fabricantes, en particular los mfgs de unidades, les gusta usar unidades decimales, porque hace que el tamaño de la unidad suene más grande, pero los usuarios se sienten frustrados cuando encuentran que tiene menos de lo que esperaban cuando ven a Windows et. Alabama. informar el tamaño en binario. Por ejemplo, 500GB = 476GiB, por lo tanto, mientras que la unidad está hecha para contener 500GB y etiquetada como tal, Mi PC muestra el binario 476GiB (pero como "476GB"), por lo que los usuarios se preguntan a dónde fueron los otros 23GB. (Los fabricantes de unidades a menudo agregan una nota al pie de página a los paquetes que indica que el "tamaño formateado es menor", lo cual es engañoso porque la sobrecarga del sistema de archivos no es nada en comparación con la diferencia entre unidades decimales y binarias).
Los dispositivos de red a menudo usan bits en lugar de bytes por razones históricas, y a los ISP a menudo les gusta anunciar el uso de bits porque aumenta la velocidad de las conexiones que ofrecen: 12Mibps en lugar de solo 1.5MiBps. A menudo incluso mezclan y combinan bits y bytes y decimales y binarios. Por ejemplo, puede suscribirse a lo que el ISP llama una línea de "12MBps", pensando que está obteniendo 12MiBps pero en realidad solo recibe 1.43MiBps (12,000,000 / 8/1024/1024).
fuente
Algunas de las respuestas no son exactas.
Primero hagamos algunas notas:
El prefijo "kilo" significa 1 000. Prefijar "kilo" a cualquier cosa significa 1 000 de ese elemento. Lo mismo es cierto para "mega" o millón, "giga" o billón, "tera" o billón, y así sucesivamente.
La razón por la que existe 1 024 en lugar de simplemente tener 1 000 es por la forma en que funciona la aritmética binaria. Binario, como su nombre lo indica, es un sistema de base 2 (tiene 2 dígitos: 0, 1). Solo puede realizar operaciones aritméticas con dos dígitos, en contraste con el sistema base 10 que usamos diariamente (0, 1, 2 ... 9), que tiene diez dígitos.
Para llegar al número 1 000 ( kilo ) usando aritmética binaria, es necesario realizar un cálculo de coma flotante. Esto significa que debe llevarse un dígito binario en cada operación hasta llegar a 1000. En el sistema base 10, 1 000 = 10 3 (siempre aumenta 10 a una potencia en la base 10), un cálculo muy fácil y rápido para que una computadora funcione sin "restos", pero en el sistema base 2, es no es posible elevar 2 (siempre eleva 2 a una potencia en la base 2) a cualquier entero positivo para obtener 1 000. Se debe utilizar una operación de punto flotante o una suma larga, y eso lleva más tiempo ejecutar que el cálculo de enteros 2 10 = 1024.
Es posible que haya notado que 2 10 = 1 024 es tentadormente cercano a 1 000 y 1 024 a 1 cifra significativa es 1 000 (una muy buena aproximación), y cuando la velocidad de la CPU era lenta como un perro viejo, y la memoria era muy limitada , esta fue una aproximación bastante decente y muy fácil de trabajar, sin mencionar la rapidez de ejecución.
Es por esta razón términos con los prefijos "kilo", "mega", "giga", etc., pegados con cifras no exactas (1 024, 2 048, 4 096, etc.). Nunca se suponía que fueran números exactos, eran aproximaciones binarias de números de base 10. Simplemente surgieron como palabras de jerga que usaban las personas "tecnológicas".
Para complicar aún más las cosas, JEDEC ha creado sus propios estándares para las unidades utilizadas en los circuitos de memoria de semiconductores. Comparemos algunas de las unidades JEDEC con las unidades SI (estándar internacional):
Kb = Kilobit (JEDEC, 1 024 bits. Observe la mayúscula 'K' y la minúscula 'b')
kB = kiloBit (SI, 1000 bits. Observe la minúscula 'k' y la mayúscula 'B')
b = bit (JEDEC, tenga en cuenta la minúscula 'b')
b = ??? (SI no define la palabra 'bit', por lo que su uso puede ser arbitrario)
B = byte (JEDEC, 8 bits. Observe la mayúscula 'B')
B = ???? (SI no define la palabra "byte" y "B" se usa para "Bel" [como en DeciBel])
KB = kilobyte (JEDEC, 1 024 bytes. Observe las mayúsculas 'K' y 'B')
kb = kilobyte (SI, 1 000 bytes. Observe el uso de minúsculas 'k' y minúsculas 'B')
El punto es que diferentes lugares usan diferentes prefijos con diferentes definiciones. No existe una regla estricta sobre cuál debe usar, pero sea coherente con la que sí usa.
Debido a la votación negativa, permítame aclarar por qué no puede hacer 1 000 en binario elevándolo a un número entero positivo.
Sistema binario:
Observe que en el sistema binario, las columnas se duplican cada vez. Esto contrasta con el sistema base 10 que aumenta en 10 cada vez:
Los primeros 10 poderes en binario (base 2) son:
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
Como puede ver, no es posible elevar el binario 2 a ningún entero positivo para alcanzar 1 000.
fuente