Converter GiB para B

GiB
1073741824B

1 GiB = 1073741824 B

Digite um valor e a conversão de gibibyte para byte se atualiza enquanto você escreve. O fator exibido é 1073741824: é isso que corresponde em B a 1 GiB. O cálculo é feito no seu próprio aparelho, e o valor digitado não é enviado para um servidor.

  • Onde roda No seu navegador. O número que você digita nunca faz parte de uma requisição.
  • Exato por definição 1 GiB é exatamente 1073741824 B — uma definição, não um fator arredondado.
  • Responde enquanto você digita Sem botão, sem espera. A resposta já está na página antes de qualquer script rodar.

gibibyte para byte na prática

  • 8 GiB is 8590000000 B

    — a memória de um notebook intermediário.

  • 931 GiB is 999700000000 B

    — o que o Windows mostra para um disco de um terabyte.

  • 0,004657 GiB is 5000000 B

    — uma foto feita com o celular.

  • 9,537e-7 GiB is 1024 B

    — um kibibyte, que é onde a confusão começa.

gibibyte e byte num relance

Cada número desta tabela é calculado a partir da mesma definição que a calculadora usa, então a tabela não tem como divergir da resposta acima.
GiBB
11073741824
22147483648
55368709120
1010737418240
5053687091200
100107374182400
500536870912000
10001073741824000

gibibyte e byte

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.

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.

Um gibibyte tem exatamente 1.073.741.824 bytes

Neste sentido a conta é uma multiplicação, e por um número inteiro: um gibibyte são 1.073.741.824 bytes, exatamente, e 1.073.741.824 é a definição, não uma medição que chegou perto.

Isso faz dela uma das poucas conversões que valem de cabeça, e o resultado dá para conferir: divida de volta e você tem que cair no número de partida, exato e sem resto para explicar.

GiB é a unidade binária

Um GiB são 1.024 da unidade de baixo; um GB, 1.000. Nesta página isso é a diferença entre 1073741824 B e 1000000000 B — 7,4 % — e a distância cresce a cada degrau: por isso é arredondamento desprezível numa foto e um pedaço visível de um HD.

O mistério do espaço que some é inteiro isso. Um disco vendido como um terabyte tem exatamente o que diz em unidades decimais; o Windows reconta em unidades binárias e mantém o nome decimal, então o número encolhe sem que nada tenha se perdido. O macOS conta em unidades decimais desde o 10.6, e é por isso que o mesmo disco pode aparecer com dois tamanhos em dois computadores.

A contagem crua que um campo de configuração está pedindo

Muitas configurações aceitam um número sem unidade, e a documentação diz bytes. Um tamanho de parte em armazenamento de objetos, um limite de corpo de requisição num framework, um buffer numa configuração de banco de dados, uma cota numa chamada de API: todos querem um inteiro, e o inteiro para um gibibyte são 1.073.741.824. Multiplique pela cifra em gibibytes e a resposta é exata, porque as duas unidades são contagens definidas e nada está sendo aproximado.

O motivo de recorrer à unidade binária em vez de um número decimal redondo é que o sistema ao redor quase certamente já é binário. Páginas de memória, tamanhos de bloco, alocações de buffer e faixas de endereço são potências de dois, e um limite de 1.000.000.000 bytes fica desalinhado entre duas delas.

Um sufixo G que parece decimal e não é

A convenção nas ferramentas operacionais é que um k, m ou g simples significa 1.024, 1.048.576 ou 1.073.741.824. As flags de heap da JVM funcionam assim, então -Xmx4g reserva 4.294.967.296 bytes. Limites de memória e armazenamento do Docker funcionam assim. Também as diretivas de recurso do systemd e os valores de tamanho no nginx. Nenhum deles anuncia isso no próprio valor; a letra parece um prefixo do SI e se comporta como binário.

As GNU coreutils vão um passo além e aceitam as duas grafias, com uma regra fácil de dizer e fácil de esquecer: uma letra sozinha é binária e uma forma de duas letras terminando em B é decimal. dd bs=1G copia em blocos de 1.073.741.824 bytes e dd bs=1GB copia em blocos de 1.000.000.000. Os dois comandos parecem quase idênticos no histórico do shell e diferem em sete por cento em cada bloco que movem.

Kubernetes é o sistema que diz qual dos dois quer dizer

Quantidades de recurso no Kubernetes carregam a distinção na própria sintaxe. Um sufixo Gi é binário, então 1Gi são 1.073.741.824 bytes; um sufixo G sem i é decimal, então 1G são 1.000.000.000. O mesmo vale em toda escala — Ki contra k, Mi contra M, Ti contra T — e o manifesto significa precisamente o que diz.

Essa clareza tem uma aresta afiada. Um limite de memória escrito 4G em vez de 4Gi é 294.967.296 bytes menor, uma diferença de cerca de sete por cento e totalmente invisível numa revisão. Onde uma carga de trabalho fica perto do teto, essa única letra faltando é a diferença entre um pod que roda e um que é encerrado por exceder o limite num momento de pico.

As potências de dois que vale reconhecer de cara

Um punhado de contagens de byte aparece repetidamente em mensagens de erro e campos de limite, e conhecê-las economiza uma conversão. 1.048.576 é um mebibyte, 1.073.741.824 é um gibibyte, 2.147.483.648 são dois deles, e 4.294.967.296 são 2³² — o tamanho exato de um espaço de endereço de 32 bits.

Um a menos que essas cifras importa tanto quanto as próprias cifras. 2.147.483.647 é o maior inteiro assinado de 32 bits, e qualquer contagem de bytes carregada num deles para exatamente ali. Um arquivo que sobe até 1,9 GiB e falha em 2,1 geralmente está esbarrando nesse limite, não num limite configurado.

Onde um limite mal dimensionado falha alto e onde não falha

Falhas altas são o caso de sorte. Um contêiner que excede seu limite de memória é encerrado com um status reconhecível; um upload acima de um limite de tamanho de corpo é rejeitado com um código de status que nomeia o problema. Os dois apontam para a configuração que os causou.

As falhas silenciosas custam mais. Um heap dimensionado sete por cento acima do que o contêiner vai permitir não falha na inicialização — falha semanas depois, sob carga, quando o processo finalmente tenta usar a memória que disseram que ele tinha. Um limite de cache configurado na unidade errada nem dá erro; ele descarta com mais frequência que o pretendido.

Escreva a aritmética, não só a constante

Uma linha de configuração dizendo 8589934592 não conta nada sobre a intenção para quem revisa. O mesmo valor escrito como 8 1024 1024 * 1024 onde o formato permite uma expressão, ou anotado com um comentário dizendo oito gibibytes, é verificável de relance.

Onde a sintaxe permite um sufixo, prefira ele aos dígitos expandidos. Quase todo erro de digitação em 1Gi é um erro de sintaxe, e o único que não é — esquecer o i — custa sete por cento; um erro de digitação em 1073741824 é uma configuração funcional com um limite dez vezes grande ou pequeno demais.

Confirmando no que o limite realmente virou

Seja qual for o valor escrito, leia de volta o valor efetivo do próprio sistema em vez de confiar no arquivo. Runtimes de contêiner expõem o teto de memória que aplicaram, a JVM imprime suas configurações de heap resolvidas quando pedido, e a maioria dos servidores reporta a configuração interpretada.

Isso importa mais quando duas camadas impõem cada uma um limite numa unidade diferente. Um limite de processo escrito em gibibytes dentro de um contêiner cujo limite foi escrito em gigabytes decimais deixa uma lacuna de sete por cento que ninguém planejou, e o menor dos dois vence silenciosamente. Ler os dois de volta em bytes coloca-os na mesma escala.

Converter GiB para B: perguntas frequentes

Quanto é 1 GiB em B?

1 GiB é 1073741824 B. A equivalência entre gibibyte e byte é fixa; o número exibido é limitado a doze algarismos significativos para evitar ruído de ponto flutuante.

O que eu digito é enviado para algum lugar?

Não. O cálculo acontece no seu navegador. Você pode desconectar da internet e continuar calculando, que aliás é a forma mais simples de conferir isso.

Por que meu HD mostra menos capacidade do que anuncia?

Porque duas unidades diferentes têm o mesmo nome. Os fabricantes contam 1 GB = 1.000.000.000 bytes; o Windows mostra gibibytes, ou seja 1.073.741.824 bytes, mas chama de «GB». O mesmo disco parece assim sete por cento menor. Nada sumiu.

Ao contrário: de byte para gibibyte

Um B é 9,31323e-10 GiB. É a mesma relação lida de trás para frente, então um resultado de uma página passado pela outra tem que voltar ao ponto de partida.

De onde vêm estes números

O que esta página afirma sobre unidades de informação pode ser conferido, e estes são os documentos que resolvem a questão.

Como esta página funciona

O fator é uma constante na página e a conta são quatro operações, então nada é enviado a lugar nenhum e nada precisa ser. O número que você digita não sai do navegador — não existe requisição em que ele pudesse viajar.