Como funciona
As unidades de armazenamento são contadas de duas maneiras diferentes e as duas estão corretas. O sistema decimal, que é o usado pelos fabricantes de discos e pelo Sistema Internacional, multiplica por 1000 em cada prefixo: um kB são 1000 bytes, um MB um milhão e um TB um trilhão. O sistema binário, que nasceu com os computadores, multiplica por 1024, porque a memória e os barramentos são endereçados em potências de dois.
O problema é que durante décadas os dois sistemas usaram os mesmos nomes. Quando o Explorador de Arquivos do Windows diz "GB", na verdade está calculando gibibytes, ou seja, dividindo por 1024 três vezes. Por isso um disco de 1 TB, que traz exatamente um trilhão de bytes, aparece na tela como 931,32 GB: não falta nada, apenas mudou a régua com que se conta. Desde 1998 a norma IEC 80000-13 resolve a ambiguidade com os prefixos binários KiB, MiB, GiB e TiB.
Esta ferramenta converte uma capacidade entre as três famílias ao mesmo tempo —decimal, binária e bits— e mostra a quantidade exata de bytes, o número declarado pelo fabricante e o que o sistema operacional vai exibir, com a porcentagem de diferença entre eles. Todo o cálculo acontece no navegador.
Exemplos
1 TB931,32 GBO disco traz 1.000.000.000.000 de bytes, exatamente o que a caixa promete. O sistema os divide três vezes por 1024 e mostra 931,32 GB, que a rigor são 931,32 GiB. Na tela parecem faltar quase 69 GB; no disco não falta um único byte.1 GiB1073741824 BUm gibibyte são 2^30 bytes. Um gigabyte decimal são 1.000.000.000, então o binário é 7,37 % maior. É a mesma diferença que separa o que você quer dizer quando pede "um giga" do que cada programa entende.4 TB3,64 TiBQuanto maior o prefixo, mais os dois sistemas se afastam: 2,34 % nos kilo, 6,87 % nos giga e 9,05 % nos tera. Por isso a sensação de "disco pequeno" piora justamente com os discos grandes.100 Mbit12,5 MBOs links de rede são medidos em bits e o armazenamento em bytes. Um link de 100 Mbit/s baixa no máximo 12,5 MB por segundo, porque cada byte são 8 bits. Essa conta explica metade das reclamações contra os provedores de internet.Casos de uso
- Entender por que um disco de 1 TB ou um pendrive de 64 GB mostram menos capacidade do que diz a embalagem.
- Traduzir para algo legível o tamanho em bytes que uma API, um log ou o comando ls -l devolvem.
- Comparar o tamanho de um backup ou de uma imagem entre duas ferramentas que medem com réguas diferentes.
- Dimensionar cotas, volumes ou limites de upload quando a documentação fala em MiB e a interface em MB.
- Converter a velocidade de um link em Mbit/s para a velocidade real de download em MB/s.
- Explicar a um cliente, com números, que o disco que ele comprou não vem com menos espaço do que o prometido.
Perguntas frequentes
Comprei um disco de 1 TB e vejo 931 GB, fui enganado?
Não. O disco tem 1.000.000.000.000 de bytes, que é o que significa 1 TB no sistema decimal usado por todos os fabricantes. O Windows pega esses mesmos bytes e os divide por 1024 três vezes, o que dá 931,32, mas rotula o resultado como "GB" em vez de "GiB". É um problema de placa, não de capacidade: os bytes estão todos lá. O que se perde de verdade, e à parte, é o que o sistema de arquivos reserva ao formatar.
Qual é a diferença entre GB e GiB?
Um GB são 1.000.000.000 de bytes (10^9) e um GiB são 1.073.741.824 (2^30). O gibibyte é 7,37 % maior. A mesma relação se repete em cada nível: kB contra KiB, MB contra MiB, TB contra TiB. Os símbolos binários levam um "i" no meio e se pronunciam kibi, mebi, gibi e tebi.
Todos os sistemas operacionais mostram a mesma coisa?
Não, e aí a confusão aumenta. O Windows calcula em potências de 1024 mas rotula GB e TB, então mostra 931 GB para um disco de 1 TB. O macOS mede em decimal desde 2009, por isso o mesmo disco aparece como 1 TB. No Linux depende da ferramenta: df -h e ls -lh usam 1024, df -H e ls -l --si usam 1000, e muitos utilitários já escrevem GiB quando é o caso. O disco nunca mudou; mudou quem o mede.
Por que a memória RAM coincide com o que diz a caixa?
Porque a memória é fabricada e endereçada em potências de dois: um módulo de "16 GB" tem na verdade 16 GiB, ou seja 17.179.869.184 bytes. Como o sistema operacional também conta em binário, os dois números batem e ninguém percebe nada. Com os discos acontece o contrário: o fabricante conta em decimal e o sistema em binário, e a diferença salta aos olhos.
Quanto a diferença cresce conforme o prefixo?
Ela acumula 2,4 % por nível. O número mostrado pelo sistema fica 2,34 % menor nos kilo, 4,63 % nos mega, 6,87 % nos giga, 9,05 % nos tera, 11,18 % nos peta e 13,26 % nos exa. Por isso em um arquivo de poucos kB a diferença é imperceptível e em um arranjo de vários petabytes representa centenas de terabytes de expectativa.
Um Mbit é a mesma coisa que um MB?
Não, e a diferença é de oito vezes. Os links de rede são medidos em bits por segundo e o armazenamento em bytes, e um byte são 8 bits. Um link de 300 Mbit/s entrega no máximo 37,5 MB/s de download, antes de descontar os cabeçalhos dos protocolos. Além disso, os prefixos de rede são sempre decimais: um Mbit é um milhão de bits, nunca 1.048.576.
Por que meu SSD tem ainda menos espaço?
À diferença entre decimal e binário somam-se duas coisas. A primeira é o sobreprovisionamento: o controlador reserva uma porção da memória flash, que não pode ser usada, para substituir blocos gastos e acelerar a escrita. A segunda é o sistema de arquivos, que consome espaço em tabelas, journal e metadados assim que você formata. Nenhuma das duas é uma falha: são o preço de a unidade durar e funcionar.
Então, qual unidade convém usar ao escrever documentação?
A que não deixa dúvidas. Se o valor é calculado com potências de 1024, escreva MiB ou GiB; se é calculado com potências de 1000, escreva MB ou GB. Em uma API ou em um arquivo de configuração, o mais seguro é expor diretamente a quantidade de bytes e deixar que a interface escolha como exibi-la. É uma linha de código que evita horas de discussão sobre por que duas ferramentas informam números diferentes para o mesmo arquivo.