Converter bytes para megabytes

Já vi três maneiras de fazer a conversão de bytes para megabytes:
  1. megabytes=bytes / 1000000
  2. megabytes=bytes / 1024 / 1024
  3. megabytes=bytes / 1024 / 1000
Está bem, acho que o número 3 está completamente errado, mas já o vi. Eu acho que #2 está certo, mas eu estou procurando alguma autoridade respeitada (como W3C, ISO, NIST, etc) para esclarecer qual megabyte é um verdadeiro megabyte. Alguém pode citar uma fonte que explica explicitamente como este cálculo é acabou?

Pergunta de bónus: se o # 2 é um megabyte, como se chamam os #1 e # 3?

Os fabricantes de Discos Rígidos não contam como autoridades neste caso!

Author: James A Mohler, 2010-03-02

9 answers

Tradicionalmente por megabyte queremos dizer a sua segunda opção: 1 megabyte.= 220 bytes. Mas não é correcto, na verdade, porque mega significa 1 000 000. Existe um novo nome padrão para 220 bytes, é mebibyte ([[6]} http://en.wikipedia.org/wiki/Mebibyte e reúne popularidade.
 94
Author: Andrey, 2010-03-02 17:21:46

Existe uma norma CEI que distingue os Termos, por exemplo, Mebibyte = 1024^2 bytes mas Megabyte = 1000^2 (a fim de ser compatível com unidades SI como quilogramas em que k/M/... significa 1000/1000000). Na verdade, a maioria das pessoas na área de TI vai preferir Megabyte = 1024^2 e fabricantes de disco rígido vai preferir Megabyte = 1000^2 (porque os tamanhos de disco rígido vai soar maior do que eles são).

Na verdade, a maioria das pessoas estão confusas pela norma CEI (multiplicador 1000) e o significado tradicional (multiplicador 1024). Em geral, você não deve fazer suposições sobre o que as pessoas significam. Por exemplo, 128 kBit/s para MP3s normalmente significa 128000 bits porque o Multiplicador 1000 é usado principalmente com os bits de unidade. Mas muitas vezes as pessoas chamam 2048 kBit / s igual a 2 MBit / s - confuso eh?

Por isso, como regra geral, não confie em unidades bit/byte de todo;)
 20
Author: AndiDog, 2010-03-02 17:19:18
Os fabricantes de Discos Rígidos não contam como autoridades neste caso!

Oh, sim eles fazem (e a definição que eles assumem a partir do s. i. é a correta). Em relação a uma questão conexa, ver [[8] este post [7] sobre o CodingHorror.

 15
Author: Federico A. Ramponi, 2010-03-03 22:35:06

Dividir por 2 para o poder de 20, (1024*1024) bytes = 1 megabyte

1024*1024 = 1,048,576   
2^20 = 1,048,576
1,048,576/1,048,576 = 1  
É a mesma coisa.
 8
Author: Marie, 2017-08-16 20:48:46
 4
Author: AVB, 2010-03-02 17:26:29

Use o cálculo que os seus utilizadores irão provavelmente esperar. Os seus utilizadores importam-se de saber quantos bytes reais estão num disco ou na memória ou o que quer que seja, ou só se importam com o espaço utilizável? A resposta a essa pergunta dir-lhe-á que cálculo faz mais sentido.

Isto não é uma questão de precisão, mas sim de usabilidade. Forneça o cálculo que é mais útil para seus usuários.
 2
Author: Bryan Oakley, 2010-03-02 17:49:27

A resposta é que #1 é tecnicamente correto baseado no significado real do prefixo Mega, no entanto (e na vida há sempre um no entanto) a matemática para isso não sai tão bom na base 2, que é como os computadores contam, então #2 é o que as pessoas realmente usam.

 2
Author: Grant Johnson, 2010-03-02 18:18:35

Megabyte significa 2^20 bytes. Eu sei que tecnicamente isso não se encaixa com as unidades SI, e que algumas pessoas inventaram uma nova terminologia para significar 2^20. Nada disso importa. Os esforços para mudar a linguagem para "esclarecer" as coisas estão condenadas ao fracasso.

Os fabricantes de discos rígidos usam isso para significar 1.000.000 bytes, porque é isso que significa em SI para que eles figuremtecnicamente eles não estão mentindo (enquanto na verdade eles estão). Isso cai em mentiras, malditas mentiras, e marketing.

 1
Author: T.E.D., 2010-03-02 17:36:05

Em geral, é errado usar prefixos decimais SI (por exemplo, kilo, mega) quando se refere a tamanhos binários de dados (excepto no uso casual). É ambíguo e causa confusão. Para ser mais preciso, pode utilizar prefixos binários (por exemplo, 1 mebibyte = 1 MiB = 1024 kibibytes = 2^20 bytes). Quando alguém usa prefixos decimais SI para dados binários você precisa obter mais informações antes que você possa saber o que significa.

 0
Author: Steven Hultgren, 2018-05-03 16:57:44