O que é cada unidade de dados
byte B
Um byte são oito bits, o que nem sempre foi claro: os primeiros computadores usaram seis, sete ou nove. O oito se impôs porque nele cabe um caractere e porque o número se parte em metades limpas.
kilobyte kB
Um kilobyte são 1.000 bytes quando quem define é um órgão de normalização e 1.024 quando quem define é um sistema operacional. Esta página calcula com 1.000; a unidade de 1.024 se chama kibibyte.
megabyte MB
Um megabyte é um milhão de bytes. Os fabricantes de armazenamento sempre contaram em decimal, e por isso os números deles parecem maiores do que o que o computador mostra.
gigabyte GB
Um gigabyte é um bilhão de bytes, no sentido decimal usado pelos fabricantes de disco, pelos planos de dados e pelos tamanhos de vídeo.
terabyte TB
Um terabyte é um trilhão de bytes, ou seja 10¹². Um disco vendido como de 1 TB tem exatamente isso: o espaço que parece faltar é uma divergência sobre unidades, e não uma falta.
kibibyte KiB
Um kibibyte são exatamente 1.024 bytes. O nome foi introduzido em 1998 para que «kilobyte» pudesse voltar a significar 1.000, embora o costume nunca tenha pegado de vez.
mebibyte MiB
Um mebibyte são 1.024 kibibytes, ou seja 1.048.576 bytes. As ferramentas do Linux e os números de memória quase sempre se referem a isto, mesmo escrevendo «MB».
gibibyte GiB
Um gibibyte são 1.073.741.824 bytes, cerca de 7 % a mais que um gigabyte. O Windows mede em gibibytes mas rotula «GB», e é nisso que consiste todo o mistério do espaço que some.
tebibyte TiB
Um tebibyte são 1.024 gibibytes. A distância em relação ao terabyte cresce a cada degrau: 2,4 % no quilo, 4,9 % no mega, 7,4 % no giga e 10 % no tera.
Notas sobre as conversões comuns de dados
gb para mb
O milhar que esta página usa, e quem mais usa o mesmo
Esta página divide por mil porque é o que o prefixo significa. Quilo, mega e giga são prefixos do Sistema Internacional para 10³, 10⁶ e 10⁹, e valem o mesmo em qualquer grandeza a que se apliquem — um quilômetro, um megawatt, um gigahertz. Aplicados a bytes, dão 1.000, 1.000.000 e 1.000.000.000, o significado usado por fabricantes de armazenamento, por operadoras de internet e celular no Brasil, e pelos próprios tamanhos de arquivo que serviços informam em suas documentações.
O sistema rival é real e não é o desta página. Potências de 1.024 dão o kibibyte, o mebibyte e o gibibyte — KiB, MiB e GiB — e são o que a maioria dos sistemas operacionais de mesa exibe, seja qual for a letra que imprimem na tela. Os dois sistemas respondem a perguntas diferentes, e ambos estão corretos dentro da própria convenção; o erro é ler um número de um sistema e comparar com um limite do outro sem perceber a diferença.
byte para gb
De onde vem esse número de onze dígitos
Uma contagem exata de bytes normalmente sai de um script, de um cabeçalho `Content-Length`, do `ls -l` ou da coluna de tamanho de um bucket de armazenamento. Nenhuma dessas fontes arredonda: 5.368.709.120 é o tamanho real do arquivo, não uma aproximação, e é por isso que o número tem tantos dígitos que ninguém lê de cabeça.
Converter a partir do byte é a forma mais segura de chegar a um gigabyte, porque toda outra grandeza exibida — no Explorador de Arquivos, num app de nuvem, num plano de dados — já é uma tradução arredondada desse valor. Trabalhar a partir do byte evita herdar o arredondamento de outra pessoa.
byte para gib
Uma contagem bruta de bytes é o único número que dois sistemas nunca discordam
Software emite tamanhos em bytes de propósito. Uma contagem de bytes não tem prefixo para interpretar, não tem arredondamento para desfazer e não tem convenção regional nela, então uma coleta de métricas, uma linha de log e uma resposta de API podem ser comparadas sem que ninguém combine antes o que um G significa.
A divisão a usar é 1.073.741.824 quando o sistema ao redor é binário, o que vale para memória, cache de página e a maioria dos contadores do sistema operacional. Esse número é exatamente 16 GiB. Usar um bilhão em vez disso dá 17,18 e esconde o fato de o número ser uma potência de dois exata.
byte para kb
A escala em que todo byte ainda é contável
Abaixo de um megabyte, mais ou menos, a contagem de bytes crua ainda não ficou ilegível, o que muda para que serve a conversão. Ninguém converte 27.504 bytes em kilobytes porque não consegue entender o original; faz isso porque tudo que quer comparar contra — um orçamento de ativo, um limite num formulário, outro arquivo que alguém citou como 30 kB — está escrito em kilobytes. A conversão é uma tradução para a unidade em que a conversa está acontecendo.
Isso também significa que precisão sai barato aqui. Uma casa decimal carrega cem bytes e duas carregam dez, então 27,5 kB e 27,50 kB são as duas honestas, e a segunda não é enchimento. Mais adiante na escala, os dígitos extras param de significar algo, mas nessa escala um décimo de kilobyte é uma quantidade real que alguém poderia remover de um arquivo.
byte para kib
Um arquivo, dois números: contagem exata contra exibição arredondada
Rode um comando que lista o tamanho exato de um arquivo e você recebe uma contagem exata de bytes, o que o sistema de arquivos registra e o que toda API que reporta um tamanho devolve. Rode a versão "legível por humano" do mesmo comando e você recebe algo como 24K. Nada no arquivo mudou entre os dois comandos — o segundo dividiu por 1.024, arredondou, e acrescentou uma letra que não diz qual escala usou.
Esse é o motivo de converter byte para kibibyte na mão. O número exato é o que precisa bater com um cabeçalho, um limite de hash ou uma cota; o arredondado é o número que um colega cita de volta de um terminal. Conseguir transitar entre os dois sem chutar qual base a ferramenta usou é a habilidade inteira aqui.
byte para mb
Por que uma máquina entrega bytes em primeiro lugar
Bytes são o que toda camada por baixo da tela realmente conta. Uma listagem de diretório sem opções de formatação, o campo de tamanho de uma chamada de sistema, um cabeçalho Content-Length, o atributo size numa listagem de armazenamento de objetos e o campo de tamanho numa linha de log são todos inteiros em bytes, porque byte é a única unidade nessa área sem dialeto: é a mesma quantidade em todo sistema, em toda plataforma, sob toda convenção.
É exatamente por isso que interfaces entregam nesse formato. No momento em que um tamanho vira megabytes, ele ganhou um divisor e um arredondamento, e nenhum dos dois viaja junto com o número. Uma API que devolve 5242880 disse algo inequívoco; uma API que devolve «5,24 MB» disse algo que precisa de uma nota de rodapé. Converter é seu trabalho, no fim, e saber disso mantém o número exato disponível enquanto for útil.