Convertendo bytes em megabytes

103

Já vi três maneiras de fazer a conversão de bytes em megabytes:

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

Ok, acho que o nº 3 está totalmente errado, mas já vi. Acho que o nº 2 está certo, mas estou procurando alguma autoridade respeitada (como W3C, ISO, NIST, etc) para esclarecer qual megabyte é um megabyte verdadeiro. Alguém pode citar uma fonte que explique explicitamente como esse cálculo é feito?

Pergunta bônus: se o número 2 for um megabyte, como são chamados os números 1 e 3?

BTW: Os fabricantes de discos rígidos não contam como autoridades neste caso!

Usuário1
fonte
3
Fabricantes de disco rígido não contam como autoridades sobre esta, na medida em que o seu uso de megabyte ao senso média # 1 está impulsionando a aceitação de que a conversão. Observe que os sistemas operacionais da Microsoft ainda usam o sentido nº 2, no entanto.
Michael Petrotta
3
# 3 deve ser chamado de megabyte de disquete. Os disquetes de 3½ polegadas eram bastante notáveis ​​por usar isso (e não me lembro de tê-lo visto em nenhum outro lugar).
Michael Madsen,
15
E o obrigatório: xkcd.com/394
Seva Alekseyev
4
Cara, cara. Entre isso e a codificação de texto, às vezes me desespero com nossa capacidade infalível de adicionar complicadores às coisas mais básicas.
Paul D. Waite,
4
Os fabricantes de discos rígidos provavelmente usam o nº 1 para obter o número mais alto. Para GB a diferença é de 7% e para TB a diferença é de 10%.
Peter Mortensen

Respostas:

115

Tradicionalmente, por megabyte, queremos dizer sua segunda opção - 1 megabyte = 2 20 bytes. Mas, na verdade, não está correto porque mega significa 1 000 000. Há um novo nome padrão para 2 20 bytes, é mebibyte ( http://en.wikipedia.org/wiki/Mebibyte ) e está ganhando popularidade.

Andrey
fonte
10
Eu concordo com tudo isso, exceto a implicação de que está ganhando muita popularidade. A participação mental de 1024 = K e amigos é efetivamente invulnerável. Quando você fizer as pessoas começarem a dizer "cracker" em vez de "hacker", volte para mim.
TED
5
Não vou negar a menção herética de "mebibyte", mas está exigindo muito esforço.
aehiilrs
3
@TED: na verdade, o uso de "hacker" para significar "cracker" é um exemplo perfeito de cultura popular substituindo o uso que os geeks prefeririam.
Michael Petrotta,
2
era meu sentimento pessoal que o mebibyte está ganhando popularidade, posso estar errado. Eu vi em algum tamanho de site de download bastante popular mostrado em MiB e KiB.
Andrey,
1
Bem, eu concordo com você e também uso mega de 10 bases e kibi e mebi de 2 bases. Esse é o padrão IEC para uso métrico: isso é definitivo e não adianta passar por cima disso.
Zan Lynx de
27

Há um padrão IEC que distingue os termos, por exemplo, Mebibyte = 1024 ^ 2 bytes, mas Megabyte = 1000 ^ 2 (para ser compatível com unidades SI como quilogramas, onde k / M / ... significa 1000/1000000). Na verdade, a maioria das pessoas na área de TI preferirá Megabyte = 1024 ^ 2 e os fabricantes de disco rígido preferirão Megabyte = 1000 ^ 2 (porque os tamanhos dos discos rígidos soarão maiores do que são).

Na verdade, a maioria das pessoas se confunde com o padrão IEC (multiplicador 1000) e o significado tradicional (multiplicador 1024). Em geral, você não deve fazer suposições sobre o que as pessoas querem dizer. Por exemplo, 128 kBit / s para MP3s geralmente significa 128000 bits porque o multiplicador 1000 é usado principalmente com os bits de unidade. Mas muitas vezes as pessoas então chamam 2048 kBit / s igual a 2 MBit / s - confuso né?

Portanto, como regra geral, não confie em unidades de bit / byte;)

AndiDog
fonte
17

BTW: Os fabricantes de discos rígidos não contam como autoridades neste caso!

Ah, sim, eles fazem (e a definição que eles assumem do SI é a correta). Sobre um assunto relacionado, veja esta postagem no CodingHorror.

Federico A. Ramponi
fonte
4
Desculpe, downvoter, mas sua definição de Mega É a correta, não importa o que os programadores pensem. Posso viver com M = 2 ^ 20, tudo bem, mas isso é apenas por razões históricas.
Federico A. Ramponi,
+1 pela coragem de ficar ao lado das empresas de HD e dos entusiastas dos padrões SI contra todos os demais!
Jeffrey L Whitledge,
11
Obrigado Jeffrey :), mas não são apenas as empresas de HD: sua CPU faz 2600 MHz; Seu processador matemático faz XY Mflops; Ethernet faz 100 Mbit / s; Sua câmera faz 5 Mpixel; A velocidade 1x do Blu-ray é 36 Mbit / s ... Todos esses "M" significam 10 ^ 6, não 2 ^ 20.
Federico A. Ramponi,
-1 Não tenho certeza se estou seguindo esta resposta. Qual fabricante de disco rígido fez uma definição? Eu não acho que CodingHorror produz discos rígidos? Estou procurando uma autoridade e um fabricante de disco rígido teria preconceito demais para ser objetivo.
Usuário1
1
A "autoridade" que apóia M = 10 ^ 6 é o Bureau Internacional de Pesos e Medidas. Pelo que eu sei, não há "autoridade", além do costume, apoiando M = 2 ^ 20.
Federico A. Ramponi,
16

Divida pela 2potência de 20, (1024*1024)bytes = 1megabyte

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

É a mesma coisa.

Marie
fonte
3

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

Grant Johnson
fonte
2

Use a computação que seus usuários provavelmente esperam. Seus usuários se preocupam em saber quantos bytes reais estão em um disco ou na memória ou qualquer outra coisa, ou eles só se preocupam com o espaço utilizável? A resposta a essa pergunta dirá qual cálculo faz mais sentido.

Esta não é uma questão de precisão, mas sim de usabilidade. Forneça o cálculo mais útil para seus usuários.

Bryan Oakley
fonte
1

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

Os fabricantes de discos rígidos usam isso para significar 1.000.000 bytes, porque é isso que significa no SI, então eles descobrem que tecnicamente não estão mentindo (quando na verdade estão). Isso se enquadra em mentiras, malditas mentiras e marketing.

TED
fonte
0

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

Steven Hultgren
fonte