Conversor de tamanhos de dados

Converte um tamanho em unidades decimais e binárias — KB ao lado de KiB, MB ao lado de MiB — com bits, a contagem exata de bytes e o que cada SO mostra.

Bytes exatos
1.000.000.000.000
Decimal
Potências de 1000 — SI, fabricantes de discos, macOS
  • B1.000.000.000.000
  • KB1.000.000.000
  • MB1.000.000
  • GB1.000
  • TB1
Binário
Potências de 1024 — IEC, Windows, RAM
  • KiB976.562.500
  • MiB953.674,3164
  • GiB931,3226
Bits
Potências de 1000 — as velocidades de rede são sempre decimais
  • bit8.000.000.000.000
  • Kb8.000.000.000
  • Mb8.000.000
  • Gb8.000
  • Tb8
Como as suas ferramentas vão mostrar isto

Os mesmos bytes, cinco leituras. Nenhuma está errada; discordam no divisor, no rótulo, ou em ambos. Cada linha é reproduzida exatamente como aquela ferramenta imprime, separadores inclusive, em vez de ser escrita no idioma desta página.

  • Explorador do Windows — divide por 1024 e mantém os rótulos decimais931 GB
  • Finder do macOS — divide por 10001 TB
  • ls -lh, du -h — dividem por 1024932G
  • ls --si, du --si — dividem por 10001.0T
  • Fabricantes de discos e pens USB — dividem por 10001 TB

O que esta ferramenta faz

Escreva um tamanho em qualquer unidade — 1 TB, 1536 MiB, 900 Mb, ou simplesmente um número de bytes em bruto copiado de uma listagem de arquivos — e ele volta convertido nos dois sistemas de unidades ao mesmo tempo, juntamente com a contagem exata de bytes e a forma como cada ferramenta da sua máquina o vai mostrar.

Os dois sistemas aparecem lado a lado e não atrás de um interruptor, porque toda a dificuldade dos tamanhos de dados está em que ambos estão em uso e ambos se chamam a mesma coisa. Um número sozinho não lhe diz qual deles o produziu.

Por que um kilobyte tem dois significados

Os computadores endereçam a memória em potências de dois, portanto 1024 é um número redondo natural para uma máquina de um modo que 1000 nunca será. Cedo se pediu emprestada a palavra «quilo» para 1024 porque estava perto o suficiente do milhar do SI e ninguém esperava que os dois se afastassem. Afastaram-se.

O erro é pequeno na ponta de baixo e acumula-se a cada degrau. Um kilobyte difere 2,4%, um megabyte 4,9%, um gigabyte 7,4%, um terabyte 10%. No petabyte as duas respostas distam 12,6%, e isso já não é um detalhe de arredondamento:

KB    1,000                 KiB    1,024                 # 2,4% de diferença
MB    1,000,000             MiB    1,048,576             # 4,9%
GB    1,000,000,000         GiB    1,073,741,824         # 7,4%
TB    1,000,000,000,000     TiB    1,099,511,627,776     # 10,0%

Em 1998 a IEC deu às potências de 1024 nomes próprios — kibibyte, mebibyte, gibibyte, e os símbolos KiB, MiB, GiB — precisamente para que a ambiguidade pudesse ser escrita e afastada. Os nomes nunca pegaram no uso corrente, mas os símbolos sim, e tudo o que traz a etiqueta KiB é inequívoco. Tudo o que traz KB continua não sendo.

Quem conta de que maneira

A divisão não é aleatória. Cai aproximadamente sobre a linha entre o hardware que se endereça e o hardware que se vende:

  • A RAM é sempre binária. Um módulo de memória de 16 GB é 16 GiB, porque a memória é endereçada por linhas e colunas binárias e não poderia ser um número decimal redondo nem que tentasse.
  • Os discos são sempre decimais. Um fabricante que vende um disco de 1 TB quer dizer 1 000 000 000 000 de bytes, e assim é desde muito antes de alguém se queixar.
  • O Windows é binário mas usa as etiquetas decimais. Divide por 1024 e escreve GB, e daí vem a maior parte da confusão que as pessoas realmente sentem.
  • O macOS é decimal desde o Snow Leopard em 2009. O mesmo disco que marca 931 GB no Windows marca 1 TB num Mac, e nenhuma das máquinas está avariada.
  • As ferramentas de linha de comando do Linux dão as duas: ls -lh e du -h dividem por 1024, e a opção --si nesses mesmos comandos divide por 1000.
  • As redes são sempre decimais, e contam bits em vez de bytes.

O disco de 1 TB que aparece como 931 GB

Esta é de longe a pergunta mais frequente sobre tamanhos de dados, e a resposta é que não falta espaço nenhum. O disco contém exatamente o que a caixa dizia. Só que o Windows divide esses bytes por 1024 três vezes em vez de por 1000, e depois imprime um rótulo que diz outra coisa.

1,000,000,000,000 bytes         # o que o fabricante vendeu
/ 1024 = 976,562,500 KB         # o Windows divide uma vez
/ 1024 = 953,674.32 MB          # duas vezes
/ 1024 = 931.32 GB              # três vezes, e rotula GB

O disco não é menor do que o anunciado e o sistema operacional não mente sobre a contagem de bytes. A única coisa errada é o rótulo: aquilo a que o Windows chama 931 GB são na verdade 931 GiB, e 931 GiB são 1 TB. Cole qualquer tamanho nesta ferramenta e as duas colunas mostram essa relação diretamente.

Bits e bytes, e o fator de oito

Um byte são oito bits, e os dois distinguem-se por escrito apenas pela caixa de uma letra: um B maiúsculo significa bytes, um b minúsculo significa bits. Mb e MB diferem por um fator de oito, mais do que suficiente para tornar um cálculo absurdo.

Isto conta sobretudo nas velocidades de rede, citadas em bits por segundo enquanto os tamanhos de arquivo e o progresso das transferências vão em bytes. Uma conexão de 100 Mb/s move no máximo 12,5 MB/s, por isso um arquivo de 1 GB demora cerca de 80 segundos e não os 10 que os números parecem prometer. Nada o está travando; as unidades nunca foram as mesmas.

Os bits são mostrados aqui apenas no sistema decimal, e isso não é uma simplificação. As velocidades de rede definem-se em potências de dez, portanto um megabit é um milhão de bits em todo lugar onde o termo é usado. A IEC define de fato unidades binárias de bits, mas praticamente nada as usa, e oferecê-las convidaria a uma conversão que ninguém pretende.

Por que os números aqui são exatos

Os números do JavaScript só armazenam inteiros de forma exata até cerca de nove quatrilhões — 2^53. Um exabyte são 10^18, bem acima disso, portanto um conversor construído sobre aritmética comum começa a perder algarismos precisamente onde vivem as perguntas sobre armazenamento grande, e relata uma contagem de bytes confiantemente errada nas últimas casas.

Aqui tudo usa inteiros de precisão arbitrária em vez disso. Isso traz ainda algo menos óbvio: como todos os fatores envolvidos são potências de dez ou de dois, e ambas dividem exatamente alguma potência de dez, cada conversão entre estas unidades termina como um decimal finito. 1 TB não é aproximadamente 931,32 GiB — é 931,322574615478515625 GiB, sem resto. As linhas aqui são arredondadas para leitura, e a contagem de bytes acima delas é a resposta inteira.

Perguntas frequentes

Um kilobyte são 1000 bytes ou 1024 bytes?
Ambos, conforme quem conta. O SI e os fabricantes de discos usam 1000; o Windows e os tamanhos de RAM usam 1024. A IEC dá nome próprio às unidades de 1024 — kibibyte, mebibyte, gibibyte — o que remove a ambiguidade, embora as etiquetas antigas continuem por toda parte. Esta ferramenta mostra as duas leituras ao mesmo tempo em vez de escolher uma.
Por que o meu disco de 1 TB só mostra 931 GB?
Não falta nada. O fabricante vendeu a você 1 000 000 000 000 de bytes, contados em potências de 1000. O Windows divide isso por 1024 três vezes, obtém 931,32, e depois rotula o resultado como GB. Os mesmos bytes, outro divisor, um rótulo enganador: o que lhe está mostrando são na verdade 931 GiB.
Qual é a diferença entre MB e MiB?
Um megabyte são 1 000 000 de bytes e um mebibyte são 1 048 576 bytes, por isso o MiB é cerca de 4,9% maior. O MiB é inequívoco por definição; o MB só o é se souber que convenção segue a ferramenta que o imprimiu.
Por que a minha transferência é mais lenta do que a velocidade da conexão?
Normalmente porque as duas se medem em unidades diferentes. As velocidades de conexão citam-se em megabits por segundo e as transferências em megabytes por segundo, e há oito bits num byte. Uma linha de 100 Mb/s chega no máximo a cerca de 12,5 MB/s.
O que significa realmente um limite de envio ou de alojamento de 25 MB?
Depende do serviço, e a suposição segura é o número menor. Se o limite for aplicado como 25 × 1 000 000 de bytes, um arquivo pouco abaixo de 25 MiB será recusado. Converter o tamanho do seu arquivo nas duas colunas mostra de imediato se passa as duas leituras.
Lida com tamanhos muito grandes?
Sim. A aritmética usa inteiros de precisão arbitrária, por isso exabytes, zettabytes e yottabytes convertem-se exatamente em vez de perderem os últimos algarismos como fazem os números de vírgula flutuante para lá de 2^53.
Alguma coisa do que escrevo é enviada para um servidor?
Não. É aritmética no seu navegador; nada é carregado nem registrado, e funciona sem conexão de rede.

Ferramentas relacionadas

  • Comprimento de texto

    Quando um tamanho começou como texto, a contagem e o tamanho se confundem fácil: um caractere não é um byte, e em UTF-8 uma letra acentuada custa dois e muitos emojis custam quatro. Aquela página conta um texto de cinco formas ao mesmo tempo, para você ver em que unidade está escrito o limite à sua frente.

  • Calculadora de porcentagem

    Dois tamanhos lado a lado costumam levantar uma terceira pergunta: que parte do disco isso ocupa, ou o quanto o arquivo cresceu. Aquela página responde às duas e mostra a fórmula pela qual chegou lá.

  • Conversor de bases numéricas

    Um tamanho é uma contagem de bytes, e uma contagem é um número em alguma base. Aquela página lê o mesmo valor em binário, octal ou hexadecimal, com uma grade de bits clicável e complemento de dois de largura fixa.