O que é um byte?
Um byte é uma unidade de dados digitais formada por 8 bits, que juntos podem representar 256 valores diferentes, de 0 a 255. Na maioria dos computadores é a menor unidade de memória com endereço próprio, e o tamanho dos arquivos é contado em bytes.
Atualizado em 24 de setembro de 2026
- 48H
- 69i
- 20␣
- F0 9F 98 80😀
4 caracteres, 7 bytes
A letra A, armazenada no seu computador, é o número 65, e o número 65 é armazenado como oito bits: 01000001. Esse grupo de oito é um byte. Os endereços de memória contam bytes, o tamanho dos arquivos conta bytes, e quase todo tipo de dado de uma linguagem de programação ocupa um número inteiro de bytes.
Por que um byte tem 8 bits
A palavra "byte" foi criada por Werner Buchholz em 1956, quando ele trabalhava no computador Stretch da IBM. Ele a escreveu com y para que não fosse confundida com "bit". Os primeiros computadores usavam grupos de tamanhos diferentes, muitas vezes de 6 bits, o que bastava para letras maiúsculas e dígitos, mas não para minúsculas.
O System/360 da IBM, lançado em 1964, usava bytes de 8 bits, e o resto da indústria seguiu. Oito bits dão 256 valores, espaço para letras maiúsculas e minúsculas, dígitos, pontuação e códigos de controle. Oito também é uma potência de dois, então um byte se divide exatamente em duas metades de 4 bits, cada uma escrita como um dígito hexadecimal. Os padrões de rede ainda dizem "octeto" quando precisam deixar claro que se trata de exatamente 8 bits.
O que um byte consegue guardar
Um byte tem 256 padrões possíveis, de 00000000 a 11111111. Os programas os leem de algumas formas padrão:
- como um número sem sinal de 0 a 255;
- como um número com sinal de -128 a 127;
- como um caractere, como
A(65) ou!(33); - como dois dígitos hexadecimais, de
00aFF.
O tipo bytes do Python é uma sequência desses valores, e ele recusa qualquer coisa fora de 0 a 255:
b'Hi!'
[72, 105, 33]
01001000 48
ValueError: bytes must be in range(0, 256)
Nem todo caractere cabe em um byte. O UTF-8, a codificação usada pela maior parte da web, guarda os 128 caracteres ASCII em 1 byte cada e todo o resto em 2 a 4 bytes:
A 1 bytes: [65] 41
é 2 bytes: [195, 169] c3a9
€ 3 bytes: [226, 130, 172] e282ac
😀 4 bytes: [240, 159, 152, 128] f09f9880
É por isso que o comprimento de uma string em caracteres e o tamanho dela em bytes podem ser diferentes.
Diferença entre bit e byte
Um bit é um único 0 ou 1. Um byte são 8 bits. As duas unidades são fáceis de confundir porque os símbolos só diferem entre maiúscula e minúscula:
| Bit | Byte | |
|---|---|---|
| O que é | Um dígito binário | 8 bits |
| Valores possíveis | 2 (0 ou 1) | 256 (0 a 255) |
| Símbolo | b (minúsculo) | B (maiúsculo) |
| Costuma medir | Velocidade de rede: Mbps, Gbps | Armazenamento e tamanho de arquivo: KB, MB, GB |
| Exemplo | Uma conexão de 100 Mbps | Uma foto de 5 MB |
Para converter bits em bytes, divida por 8. Uma conexão de 100 Mbps transfere no máximo 12,5 MB por segundo, então uma foto de 5 MB leva pelo menos 0,4 segundo para baixar nela.
Kilobytes, megabytes e gigabytes
As unidades maiores existem em dois sistemas, e a diferença entre eles é o motivo de um disco novo parecer menor no Windows do que no rótulo.
| Decimal (SI) | Bytes | Binário (IEC) | Bytes |
|---|---|---|---|
| kilobyte (kB) | 1.000 | kibibyte (KiB) | 1.024 |
| megabyte (MB) | 1.000.000 | mebibyte (MiB) | 1.048.576 |
| gigabyte (GB) | 1.000.000.000 | gibibyte (GiB) | 1.073.741.824 |
| terabyte (TB) | 1.000.000.000.000 | tebibyte (TiB) | 1.099.511.627.776 |
Os fabricantes de discos, as velocidades de rede e o macOS (desde a versão 10.6, de 2009) usam as unidades decimais. Os tamanhos de RAM e o Windows usam as unidades binárias, mas o Windows as chama de KB, MB e GB. A IEC criou os nomes kibibyte, mebibyte e gibibyte em 1998 para acabar com a confusão, embora muitos programas ainda não os usem.
1.0 TB (decimal, used on the box)
931.3 GiB (binary, what Windows calls GB)
12.5 MB per second
Não falta espaço nenhum. O disco guarda o trilhão de bytes que a caixa promete; o Windows divide por 1.024 três vezes em vez de por 1.000.
Bytes no código
Todo valor na memória ocupa um número inteiro de bytes. Em C, sizeof informa esse número. Um char tem exatamente 1 byte por definição, e nos sistemas Linux, macOS e Windows atuais de 64 bits um short tem 2 bytes, um int 4 e um double 8. Um array de 1.000 valores int ocupa, portanto, 4.000 bytes.
printf("%zu\n", sizeof(int)); /* prints 4 */
O tipo byte do Java sempre tem sinal, de -128 a 127, então um valor como 200 não cabe:
byte b = (byte) 200; // b is -56: the same 8 bits, read as signed
Dados brutos como imagens, arquivos compactados e pacotes de rede são tratados como arrays de bytes: bytes e bytearray em Python, byte[] em Java, Uint8Array em JavaScript. Abrir um arquivo em Python no modo "rb" dá a você os bytes dele em vez de texto.
Hashes e checksums também são medidos em bytes. Um digest SHA-256 tem 32 bytes, e é por isso que ele aparece como 64 caracteres hexadecimais, e um checksum CRC32 tem 4 bytes. O gerador de hash mostra os dois para qualquer texto.
Próximos passos
Para a unidade abaixo do byte, leia o que é um bit, e para ver como os bytes são usados para detectar arquivos danificados, o que é um checksum. O conversor de bases numéricas converte qualquer byte entre decimal, binário e hexadecimal, e o guia de tipos de dados em C lista o tamanho em bytes de cada tipo do C.
Perguntas frequentes
Como se chamam 8 bits 11111111?
11111111 é um byte com todos os bits em 1. Lido como número sem sinal ele vale 255, o maior valor que um byte pode guardar, escrito FF em hexadecimal. Lido como byte com sinal em complemento de dois, os mesmos bits significam -1.Por que 8 bits equivalem a 1 byte?
Por que 4 bits se chamam nibble?
1 byte tem 4 bits?
O que é maior, byte ou GB?
Como é um byte na prática?
01000001. Esse padrão é o número 65, que também é o código da letra A em ASCII. Os programadores costumam escrever um byte como dois dígitos hexadecimais, então 01000001 vira 41.