El tamaño de los archivos en Windows no tiene sentido

18

Aquí tengo este archivo en Windows:

ingrese la descripción de la imagen aquí

¿Pero no son 62.563 bytes 62.6 KB?

ingrese la descripción de la imagen aquí

Kirk Ouimet
fuente
24
Ver XKCD # 394
Nick T
11
Mac usa kilobytes decimales (el estándar IEC), mientras que Windows todavía usa kilobytes binarios (desde entonces renombrados a kibibytes), Linux generalmente se refiere a KiB (los kilobytes binarios renombrados). Personalmente, creo que esto es todo tipo de basura. Uno no compra una memoria RAM con 1,000,000,000 de bytes, sino que compra una memoria RAM con 1,073,741,824 bytes. Pero cuando compra un disco duro, lo compra con 500,000,000,000 bytes disponibles, a pesar de que los sectores se asignan en múltiplos de 512 bytes. Me gustaban mis kilobytes cuando eran binarios ...
phyrfox
1
@phyrfox: 1 MHz de CPU es 1 millón de ciclos, no 1,073,741,824 ciclos. 1 Mbps de tráfico de red también es de 1 millón de bits.
Zan Lynx
3
@ZanLynx Mega no es 1 millón, está adaptado "genial" del griego. Además, tal como están, los prefijos SI solo tienen sentido con unidades físicas. Pero los bytes y los bits no son unidades físicas. Además, como los prefijos SI están estandarizados, también hay un estándar para los tamaños de memoria, que define el significado de kilo, mega y giga como 1024, 1048576 y 1073741824 respectivamente.
Ruslan

Respuestas:

53

62,563 bytes son 61.0966797 kibibytes . El prefijo kibi significa que la base para el cálculo es 1024, bi significa "binario" porque 2 ^ 10 = 1024 . Es solo uno de los prefijos binarios , otros son mebi o gibi .

Un kilobyte, por otro lado, es de 1000 bytes, utilizando los prefijos clásicos de SI que conoce de kilómetros y kilogramos. Está usando la base decimal, 10 ^ 3 = 1000 , por lo que Google tiene razón . Si hubiera buscado en Google la misma cantidad en kibibytes, habría obtenido la respuesta correcta en terminología informática.

Es realmente importante hacer la distinción entre kilo y kibi en estos días, y en realidad, Windows debería informarlo como "61 KiB" para ser absolutamente preciso. Esta es la convención IEC para facilitar la distinción.

Dicho esto, todavía hay mucha ambigüedad en estos días, donde los tamaños de los discos duros generalmente se informan en unidades binarias (pero no siempre de manera explícita), y las velocidades de conexión se dan en unidades SI.

slhck
fuente
1
@Joker_vD: Afortunadamente ;-) kilo y mega (y cualquier otro prefijo que siga) son solo factores, no cantidades propias, por lo que usar solo K y M (y G y T y P, etc.) sería bastante inútil. (Lo mismo es válido para los prefijos kibi , mebi , etc., obviamente). Además, todas las unidades de uso común están bien libres de ambigüedad, ya que no se usa ninguna abreviatura dos veces, pero K a primera vista se vería igual a K para Kelvin .
O Mapper
1
@ORMapper Sí, y T sería confundido con Tesla . Porque obviamente, los manuales del programador a menudo discuten la física subyacente.
Joker_vD
1
@Joker_vD: Si la física podría aparecer o no, es irrelevante. El punto es que los signos de unidad K y T ya no serían inequívocos sin ningún contexto, creando así una desventaja innegable en comparación con un mapeo único entre signos de unidad y unidades, lo que hace que tal convención sea altamente indeseable.
O Mapper
1
¿Quién fuera de un nicho del mundo informático sabe qué es un 'kibibyte'? Por cierto, solo recientemente Google tenía "razón". Es todavía un debate muy vivo sobre si un kilobyte es 1000 o 1024 bytes.
Justin Krejcha
99
¿Soy el único que está un poco molesto porque esto se trunca a 61.0, en lugar de redondearse a 61.1?
Christofer Ohlsson
22

Sí, piensa en Google como el Sombrerero Loco. Tienes que hacer la pregunta correcta. O tal vez un elfo: a veces su respuesta será sí y no.

byte a KiB.  El kilobyte de la computadora;  o el kibibyte.

Iraedei
fuente
5

1 KB = 1024 bytes. Así:

62563 / 1024 = 61.097KB

Como método abreviado, muchas personas y sistemas tratan un KB como 1000, ya que Kilo es el prefijo SI para 1000. Sin embargo, los informáticos usan el prefijo para 2 ^ 10, que es 1024.

EBGreen
fuente
3

La mayoría de los números relacionados con la computadora usan prefijos binarios, en contraste con el sistema SI que usa prefijos decimales. Esto significa que:

  • 1 kilogramo = 10 3 gramos, pero
  • 1 kilobyte = 2 10 bytes

Eso es, respectivamente, 1000 gramos y 1024 bytes. 62563 / 1024 ~= 61, entonces Windows tiene razón.

Sin embargo, no todo lo relacionado con la computadora se basa en prefijos binarios, y esta inconsistencia a menudo conduce a malentendidos. Esta página de Wikipedia describe qué prefijos se usan para medir cosas diferentes.

Un caso extremo es el ancho de banda. Por lo general, utiliza prefijos binarios cuando se expresa en bytes por segundo y prefijos decimales cuando se expresa en bits por segundo. Entonces esta oración es verdadera:

1 byte por segundo = 8 bits por segundo

Pero este es falso:

1 kilobyte por segundo = 8 kilobits por segundo

Porque:

  • 1 KB / s = 1024 B / s
  • 1 Kbps = 1000 bps

( pregunta relacionada )

gronostaj
fuente
1
Error: 2 ^ 8 = 256 ---> Supongo que debería ser 2 ^ 10 ;-)
Hannu
La página de discusión de WP es mucho más interesante que el artículo real (un debate muy grande sobre si un KB es 1024 o 1000 bytes).
Justin Krejcha
El ancho de banda se expresa correctamente en Hz, donde los prefijos SI usan potencias de 10. La razón por la cual el rendimiento (velocidad de transferencia de datos, equivalente ancho de banda multiplicado por la eficiencia de codificación) es ambiguo es porque la primera definición conduce a (KB)/s, donde KB usa el prefijo basado en binario, y el segundo se basa en kHz o kbaud, usando el decimal prefijo.
Ben Voigt