Conversión de bytes a megabytes

103

He visto tres formas de hacer la conversión de bytes a megabytes:

  1. megabytes = bytes / 1000000
  2. megabytes = bytes / 1024/1024
  3. megabytes = bytes / 1024/1000

Ok, creo que el número 3 está totalmente equivocado, pero lo he visto. Creo que el número 2 es correcto, pero estoy buscando alguna autoridad respetada (como W3C, ISO, NIST, etc.) para aclarar qué megabyte es un verdadero megabyte. ¿Alguien puede citar una fuente que explique explícitamente cómo se realiza este cálculo?

Pregunta adicional: si el n. ° 2 es un megabyte, ¿cómo se llaman el n. ° 1 y el n. ° 3?

Por cierto: ¡los fabricantes de discos duros no cuentan como autoridades en este caso!

Usuario1
fuente
3
Los fabricantes de discos duros no cuentan como autoridades en este caso, la medida en que su uso de megabytes al sentido media # 1 está impulsando la aceptación de que la conversión. Sin embargo, tenga en cuenta que los sistemas operativos de Microsoft todavía usan el sentido n. ° 2.
Michael Petrotta
3
El número 3 debería llamarse megabyte de disquete. Los disquetes de 3½ pulgadas fueron bastante notables por usar esto (y no recuerdo haberlo visto en ningún otro lugar).
Michael Madsen
15
Y el obligatorio: xkcd.com/394
Seva Alekseyev
4
Hombre, oh hombre. Entre esto y la codificación de texto, a veces me desespero por nuestra infalible habilidad para agregar complicados problemas a las cosas más básicas.
Paul D. Waite
4
Es muy probable que los fabricantes de discos duros utilicen el número 1 para obtener el número más alto. Para GB la diferencia es del 7% y para TB la diferencia es del 10%.
Peter Mortensen

Respuestas:

115

Tradicionalmente, por megabyte nos referimos a su segunda opción: 1 megabyte = 2 20 bytes. Pero en realidad no es correcto porque mega significa 1 000 000. Hay un nuevo nombre estándar para 2 20 bytes, es mebibyte ( http://en.wikipedia.org/wiki/Mebibyte ) y gana popularidad.

Andrey
fuente
10
Estoy de acuerdo con todo esto, excepto la implicación de que está ganando mucha popularidad. La mente compartida de 1024 = K y sus amigos es efectivamente invulnerable. Cuando consigas que la gente empiece a decir "cracker" en lugar de "hacker", vuelve a mí.
TED
5
No voy a rechazar la mención herética de "mebibyte", pero requiere un gran esfuerzo.
aehiilrs
3
@TED: en realidad, el uso de "hacker" para significar "cracker" es un ejemplo perfecto de cómo la cultura popular prevalece sobre el uso que los geeks preferirían.
Michael Petrotta
2
era mi sentimiento personal que mebibyte está ganando popularidad, puede que me equivoque. Vi en un tamaño de sitio de descarga bastante popular que se muestra en MiB y KiB.
Andrey
1
Bueno, estoy de acuerdo contigo y también utilizo mega 10 bases y kibi y mebi de 2 bases. Ese es el estándar IEC para uso métrico: es definitivo y no tiene sentido patearlo.
Zan Lynx
27

Existe un estándar IEC que distingue los términos, por ejemplo, Mebibyte = 1024 ^ 2 bytes pero Megabyte = 1000 ^ 2 (para ser compatible con unidades SI como kilogramos, donde k / M / ... significa 1000/1000000). En realidad, la mayoría de la gente en el área de TI preferirá Megabyte = 1024 ^ 2 y los fabricantes de discos duros preferirán Megabyte = 1000 ^ 2 (porque los tamaños de disco duro sonarán más grandes de lo que son).

De hecho, la mayoría de la gente está confundida por el estándar IEC (multiplicador 1000) y el significado tradicional (multiplicador 1024). En general, no debe hacer suposiciones sobre lo que la gente quiere decir. Por ejemplo, 128 kBit / s para MP3 generalmente significa 128000 bits porque el multiplicador 1000 se usa principalmente con los bits unitarios. Pero a menudo la gente llama 2048 kBit / s igual a 2 MBit / s - confuso, ¿eh?

Entonces, como regla general, no confíe en las unidades de bit / byte en absoluto;)

AndiDog
fuente
17

Por cierto: ¡los fabricantes de discos duros no cuentan como autoridades en este caso!

Oh, sí lo hacen (y la definición que asumen del SI es la correcta). En un tema relacionado, vea esta publicación sobre CodingHorror.

Federico A. Ramponi
fuente
4
Lo siento, votante negativo, pero su definición de Mega ES la correcta, sin importar lo que piensen los programadores. Puedo vivir con M = 2 ^ 20, está bien, pero eso es solo por razones históricas.
Federico A. Ramponi
+1 por la moxie de estar con las compañías HD y los entusiastas de los estándares SI contra todos los demás.
Jeffrey L Whitledge
11
Gracias Jeffrey :), pero no son solo las empresas HD: su CPU funciona a 2600 MHz; Su procesador matemático hace XY Mflops; Ethernet hace 100 Mbit / s; Tu cámara tiene 5 megapíxeles; La velocidad 1x de Blu-ray es de 36 Mbit / s ... Todas estas "M" representan 10 ^ 6, no 2 ^ 20.
Federico A. Ramponi
-1 No estoy seguro de seguir esta respuesta. ¿Qué fabricante de discos duros hizo una definición? No creo que CodingHorror produzca discos duros. Estoy buscando una autoridad y un fabricante de discos duros tendría demasiado sesgo para ser objetivo.
Usuario1
1
La "autoridad" que respalda M = 10 ^ 6 es la Oficina Internacional de Pesas y Medidas. Hasta donde yo sé, no hay ninguna "autoridad", además de la costumbre, que respalde M = 2 ^ 20.
Federico A. Ramponi
16

Dividir por elevado 2a la potencia de 20, (1024*1024)bytes = 1megabyte

1024*1024 = 1,048,576   
2^20 = 1,048,576
1,048,576/1,048,576 = 1  

Es la misma cosa.

Marie
fuente
3

La respuesta es que el # 1 es técnicamente correcto basado en el significado real del prefijo Mega, sin embargo (y en la vida siempre hay un sin embargo) las matemáticas para eso no salen tan bien en la base 2, que es como cuentan las computadoras. , entonces el # 2 es lo que la gente realmente usa.

Grant Johnson
fuente
2

Utilice el cálculo que sus usuarios probablemente esperarán. ¿A sus usuarios les importa saber cuántos bytes reales hay en un disco o en la memoria o lo que sea, o solo les importa el espacio utilizable? La respuesta a esa pregunta le dirá qué cálculo tiene más sentido.

Esta no es una pregunta de precisión tanto como de usabilidad. Proporcione el cálculo que sea más útil para sus usuarios.

Bryan Oakley
fuente
1

Megabyte significa 2 ^ 20 bytes. Sé que técnicamente eso no encaja con las unidades SI, y que algunas personas han creado una nueva terminología para significar 2 ^ 20. Nada de eso importa. Los esfuerzos por cambiar el lenguaje para "aclarar" las cosas están condenados al fracaso.

Los fabricantes de discos duros lo usan para significar 1,000,000 de bytes, porque eso es lo que significa en SI, por lo que creen que técnicamente no están mintiendo (cuando en realidad lo están). Eso cae bajo mentiras, malditas mentiras y marketing.

TED
fuente
0

En general, es incorrecto usar prefijos SI decimales (por ejemplo, kilo, mega) cuando se hace referencia a tamaños de datos binarios (excepto en el uso casual). Es ambiguo y causa confusión. Para ser precisos, puede utilizar prefijos binarios (por ejemplo, 1 mebibyte = 1 MiB = 1024 kibibytes = 2 ^ 20 bytes). Cuando alguien más usa prefijos SI decimales para datos binarios, necesita obtener más información antes de saber a qué se refieren.

Steven Hultgren
fuente