Você já deve ter notado por aí a informação de tamanhos de arquivos ou de unidades de armazenamento expressos em gibibyte (GiB) no lugar do tradicional gigabyte (GB). Ambos medem quantidade de dados ocupados ou quantidade de armazenamento disponível, mas um é menor que o outro.
Neste artigo você vai entender porque essa mudança de medida é importante nos dias atuais e a diferença entre elas.
MiB x MB, GiB x GB… qual a diferença?
O problema está na matemática, nossa matéria favorita na escola, não é verdade? 💔 Em algum momento na história, os humanos acharam mais conveniente fundamentar suas contas usando o total de dedos das mãos como referência e assim foi desenvolvida a base decimal. Mas alguns povos usavam outras bases, como os maias, por exemplo, que usavam a base 20.
Nós crescemos acostumados com o sistema numérico decimal, o mais usado atualmente em todo o mundo e estamos muito acostumados com o sistema métrico de distâncias e massas, fundamentados também na base 10 (metro, quilômetro, grama, quilograma). Sabendo disso, os fabricantes de discos rígidos procuram usar o sistema métrico decimal em suas embalagens e etiquetas para o consumidor associar melhor (ou não).
No entanto, os computadores são fundamentados na base 2, binária. Assim, quando usamos a definição matemática de bilhão, que é 1.000³, na base decimal chegamos ao valor de 1.000.000.000. Já na base binária, o valor matemático de bilhão na verdade é 1024³ = 1.073.741.824.
Mas por que 1.024 e não 1.000? Porque assim como na base decimal para chegar no primeiro número da ordem dos milhares você precisa usar 10³ = 1000 (primeiro número dos milhares), na base 2 para chegar no mesmo lugar equivalente você precisa usar 2¹º = 1024 (primeiro número dos milhares da base binária).
Base | 2 | 10 |
Conceito de mil | 2¹º | 1.024 |
Total | 10³ | 1.000 |
Conceito de milhão | 1.024² | 1.000² |
Total | 1.048.576 | 1.000.000 |
Conceito de bilhão | 1.024³ | 1.000³ |
Total (diferença de aprox. 7%) | 1.073.741.824 | 1.000.000.000 |
Quando as unidades de medidas andavam na casa dos megabytes, ninguém ligava muito para essa diferença. Mas na década de 2000, quando a maior parte dos discos rígidos já eram vendidos na ordem dos gigabytes, a diferença de medida começou a ser significativa. A cada 10 GB vendidos, o consumidor perdia cerca de 700 MB.
Essa diferença ficava bem clara ao consultar o sistema operacional, que mostrava os valores corretamente em base 2. Por isso, empresas como Seagate e Western Digital começaram a ser processadas nos Estados Unidos, o que por fim levou a uma padronização técnica de nomenclatura.
Desta forma, adotou-se que ao se usar kibibyte (KiB), mebibyte (MiB), gibibyte (GiB), tebibyte (TiB)… estamos inequivocamente usando a base binária. Já ao se usar as tradicionais medidas kilobyte, megabyte, gigabyte, terabyte, poderá estar se referindo à base binária ou a base decimal, a depender do contexto.
Por exemplo, como essas medidas são definidas pela IEC – International Electrotechnical Commission (uma espécie de ABNT lá nos EUA), se engenheiros estiverem falando em megabytes (MB), pois usam amplamente as definições da IEC, estarão sem dúvida usando a base decimal. Mas se numa conversa de entusiastas de tecnologia, onde esse detalhamento não é tão importante, pode ser que essa mesma medida se refira à base binária.
Para alinhar o entendimento, tenha em mente que antes do KB ou KiB, temos o byte em si, que é expresso pela medida B (letra B maiúscula), e que um byte é composto por 8 bits, expresso por b (letra b minúscula). O bit sim é a base binária, pois nele só pode haver dois valores matemáticos: 0 ou 1. Assim, 1 byte contém 8 bits (1 B = 8 b).
Na tabela a seguir, temos um comparativo entre as medidas de volume de dados na base decimal e binária. Note como a diferença vai se tornando cada vez mais significativa à medida que falamos de grandes volumes de dados.
Decimal | ||
Nomenclatura – sigla | Base | Bytes |
Kilobyte – KB | 1.000¹ | 1.000 |
Megabyte – MB | 1.000² | 1.000.000 |
Gigabyte – GB | 1.000³ | 1.000.000.000 |
Terabyte – TB | 1.000⁴ | 1.000.000.000.000 |
Petabyte – PB | 1.000⁵ | 1.000.000.000.000.000 |
Exabyte – EB | 1.0006 | 1.000.000.000.000.000.000 |
Zettabyte – ZB | 1.0007 | 1.000.000.000.000.000.000.000 |
Yottabyte – YB | 1.0008 | 1.000.000.000.000.000.000.000.000 |
Binário | ||
Nomenclatura – sigla | Base | Bytes |
Kibibyte – KiB | 1.024¹ | 1.024 |
Mebibyte – MiB | 1.024² | 1.048.576 |
Gibibyte – GiB | 1.024³ | 1.073.741.824 |
Tebibyte – TiB | 1.024⁴ | 1.099.511.627.776 |
Pebibyte – PiB | 1.024⁵ | 1.125.899.906.842.624 |
Exbibyte – EiB | 1.0246 | 1.152.921.504.606.846.976 |
Zebibyte – ZiB | 1.0247 | 1.180.591.620.717.411.303.424 |
Yobibyte – YiB | 1.0248 | 1.208.925.819.614.629.174.706.176 |
Observando essa tabela, fica clara a importância deste conceito. Hoje facilmente compramos computadores com “1 TB” de armazenamento e se isso não estiver bem esclarecido, o consumidor poderá ser enganado perdendo cerca de 10 GB de armazenamento (99.511.627.776 bytes, grifado na tabela).
Agora fazendo um comparativo puramente matemático, a tabela a seguir mostra a diferença entre a base decimal e a base binária para chegar nos equivalentes kilo, mega, giga, tera e peta. Note que a potência da base binária começa a ficar muito maior que a potência da base decimal para se conseguir o valor equivalente. Como destacado nesta página do IEC, enquanto na escala exa do sistema métrico (um quintilhão) temos 1018, o equivalente na base binária é 260.
Decimal métrico (kilo, mega, giga) | ||
Grupo | Base | Bytes |
Unidade | 10º | 1 |
Dez | 10¹ | 10 |
Cem | 10² | 100 |
Mil (kilo) | 10³ | 1.000 |
Dez mil | 10⁴ | 10.000 |
Cem mil | 10⁵ | 100.000 |
Um milhão (mega) | 106 | 1.000.000 |
Dez milhões | 107 | 10.000.000 |
Cem milhões | 108 | 100.000.000 |
Um bilhão (giga) | 109 | 1.000.000.000 |
Um trilhão (tera) | 1012 | 1.000.000.000.000 |
Um quatrilhão (peta) | 1015 | 1.000.000.000.000.000 |
Binário equivalente | ||
Nomenclatura – sigla | Base | Byte |
Byte | 2º | 1 |
Primeiro decimal | 24 | 16 |
Primeiro centesimal | 27 | 128 |
Primeiro milhar (kilo) | 210 | 1.024 |
Primeira dezena de milhar | 214 | 16.384 |
Primeira centena de milhar | 214 | 131.072 |
Primeiro milhão | 220 | 1.048.576 |
Primeira dezena de milhão | 224 | 16.777.216 |
Primeira centena de milhão | 227 | 134.217.728 |
Primeiro bilhão | 230 | 1.073.741.824 |
Primeiro trilhão | 240 | 1.099.511.627.776 |
Primeiro quatrilhão | 250 | 1.125.899.906.842.620 |
Confusão entre os Sistemas Operacionais
Algumas distribuições Linux já apresentam a nomenclatura binária uniformemente, como a OpenSUSE Tumbleweed, que mostra e calcula tudo em binário tanto no modo gráfico quanto no terminal. Outras podem conter diferenças, como o Fedora 36, que no GNOME mostra e calcula em decimal e no terminal calcula em binário, mas mostra a nomenclatura decimal. No Windows, o cálculo é feito corretamente em binário, mas apresenta a nomenclatura decimal.
No Linux, claro que você pode checar o tamanho de arquivos no modo gráfico facilmente, mas se estiver no modo texto, poderá rapidamente usar um dos exemplos a seguir, onde -l é para apresentar em listagem completa e o -h é para apresentar no “modo humano”, usando a nomenclatura binária (ou não 😅)
$> ls -l nomedoarquivo
$> ls -lh nomedoarquivo
$> du nomedoarquivo
$> du -h nomedoarquivo
Conclusão
A tradicional medição em base 10, comumente escrita KB, MB, GB, TB, não é exata para medir volume de dados, pois os computadores utilizam base 2 (binária). Por isso, a IEC definiu a nomenclatura binária acrescentando um “i” no meio das siglas tradicionais (KiB, MiB, GiB, TiB).
Agora você já sabe verificar o real tamanho de seu HD, pendrive ou memória caso eles venham com a nomenclatura decimal e como essa diferença é mais significativa quando falamos de gibibytes para cima.
Além disso, ganhou um novo trava-línguas para brincar. Tente falar bem rápido:
– tebibyte, pebibyte, exbibyte
– exbibyte, tebibyte, pebibyte,
– pebibyte, tebibyte, exbibyte