Decifrando o Código: O poder por trás dos binários
0s e 1s
Você provavelmente já ouviu que os dispositivos eletrônicos só entendem 0 e 1 — a famosa base binária (ou base 2, matematicamente falando).
Mas... como é que os computadores fazem tanto, se só conhecem dois números e nem têm um alfabeto como o nosso?
Pensa assim: nós olhamos pra “123” e entendemos como um, dois, três ou cento e vinte e três. Sabemos que cada posição tem um peso — unidade, dezena, centena…
Matematicamente, isso se escreve assim:
Ou seja, a posição de cada dígito muda completamente o valor do número.
Agora, e se o computador fizesse algo parecido, só que usando 0s e 1s?
Vamos começar simples:
0\ 0\ 0
Aqui, tudo é zero — nenhum mistério.
Mas como representar números maiores que 0 nesse sistema?
Na base 10, temos os dígitos [0–9]. Já na base 2, só temos [0–1].
Então precisamos dar pesos diferentes às posições:
4\ \ 2\ \ 1
0\ \ 0\ \ 0
Na base 10 usamos 10² | 10¹ | 10⁰, que equivalem a 100, 10 e 1.
Na base 2, usamos 2² | 2¹ | 2⁰, que valem 4, 2 e 1.
Então a sequência 0 0 0 significa:
Agora, o número 1:
4\ \ 2\ \ 1
0\ \ 0\ \ 1
4×0 + 2×0 + 1×1 = 1
Simples.
E o 7?
4\ \ 2\ \ 1
1\ \ 1\ \ 1
4×1 + 2×1 + 1×1 = 7
Usamos todas as posições.
Mas com 3 posições, conseguimos ir só até 7.
E o que acontece se quisermos representar 8?
Assim como na base 10 adicionamos uma nova casa (milhar, por exemplo), na base 2 fazemos o mesmo:
8\ \ 4\ \ 2\ \ 1
0\ \ 0\ \ 0\ \ 0
O próximo expoente é 2³ = 8.
Então, pra representar o número 8:
8\ \ 4\ \ 2\ \ 1
1\ \ 0\ \ 0\ \ 0
E pronto — ampliamos o “vocabulário” do computador.
Com cada novo dígito, dobramos o número de possibilidades.
Terminamos, certo?
Quase.
ASCII
Porque o computador não representa só números.
Você está lendo letras, acentos, espaços e pontuação — tudo isso nasceu do mesmo princípio.
Então… existe algo além de 0 e 1?
Não.
A resposta é bem mais elegante: nós apenas atribuímos significado aos números.
No início da computação, foi criada uma espécie de “dicionário” entre números e símbolos: a tabela ASCII.
Ela definiu relações entre:
números binários → números decimais → letras e sinais
Um mapa simples, mas revolucionário — o primeiro alfabeto digital da história.
| Dec | Símbolo | Descrição | Dec | Símbolo | Descrição |
|---|---|---|---|---|---|
| 0 | NUL | Null | 64 | @ | Arroba |
| 1 | SOH | Start of Heading | 65 | A | Letra maiúscula A |
| 2 | STX | Start of Text | 66 | B | Letra maiúscula B |
| 3 | ETX | End of Text | 67 | C | Letra maiúscula C |
| 4 | EOT | End of Transmission | 68 | D | Letra maiúscula D |
| 5 | ENQ | Enquiry | 69 | E | Letra maiúscula E |
| 6 | ACK | Acknowledge | 70 | F | Letra maiúscula F |
| 7 | BEL | Bell (beep) | 71 | G | Letra maiúscula G |
| 8 | BS | Backspace | 72 | H | Letra maiúscula H |
| 9 | TAB | Tabulação horizontal | 73 | I | Letra maiúscula I |
| 10 | LF | Line Feed (nova linha) | 74 | J | Letra maiúscula J |
| 11 | VT | Tabulação vertical | 75 | K | Letra maiúscula K |
| 12 | FF | Form Feed | 76 | L | Letra maiúscula L |
| 13 | CR | Carriage Return (retorno) | 77 | M | Letra maiúscula M |
| 14 | SO | Shift Out | 78 | N | Letra maiúscula N |
| 15 | SI | Shift In | 79 | O | Letra maiúscula O |
| 16 | DLE | Data Link Escape | 80 | P | Letra maiúscula P |
| 17 | DC1 | Device Control 1 | 81 | Q | Letra maiúscula Q |
| 18 | DC2 | Device Control 2 | 82 | R | Letra maiúscula R |
| 19 | DC3 | Device Control 3 | 83 | S | Letra maiúscula S |
| 20 | DC4 | Device Control 4 | 84 | T | Letra maiúscula T |
| 21 | NAK | Negative Acknowledge | 85 | U | Letra maiúscula U |
| 22 | SYN | Synchronous Idle | 86 | V | Letra maiúscula V |
| 23 | ETB | End of Trans. Block | 87 | W | Letra maiúscula W |
| 24 | CAN | Cancel | 88 | X | Letra maiúscula X |
| 25 | EM | End of Medium | 89 | Y | Letra maiúscula Y |
| 26 | SUB | Substitute | 90 | Z | Letra maiúscula Z |
| 27 | ESC | Escape | 91 | [ | Colchete esquerdo |
| 28 | FS | File Separator | 92 | \ | Barra invertida |
| 29 | GS | Group Separator | 93 | ] | Colchete direito |
| 30 | RS | Record Separator | 94 | ^ | Circunflexo |
| 31 | US | Unit Separator | 95 | _ | Subtraço |
| 32 | (espaço) | Espaço | 96 | ` | Crase |
| 33 | ! | Exclamação | 97 | a | Letra minúscula a |
| 34 | " | Aspas duplas | 98 | b | Letra minúscula b |
| 35 | # | Cerquilha (hash) | 99 | c | Letra minúscula c |
| 36 | $ | Cifrão | 100 | d | Letra minúscula d |
| 37 | % | Porcentagem | 101 | e | Letra minúscula e |
| 38 | & | E comercial | 102 | f | Letra minúscula f |
| 39 | ' | Apóstrofo | 103 | g | Letra minúscula g |
| 40 | ( | Parêntese esquerdo | 104 | h | Letra minúscula h |
| 41 | ) | Parêntese direito | 105 | i | Letra minúscula i |
| 42 | * | Asterisco | 106 | j | Letra minúscula j |
| 43 | + | Mais | 107 | k | Letra minúscula k |
| 44 | , | Vírgula | 108 | l | Letra minúscula l |
| 45 | - | Hífen | 109 | m | Letra minúscula m |
| 46 | . | Ponto | 110 | n | Letra minúscula n |
| 47 | / | Barra | 111 | o | Letra minúscula o |
| 48 | 0 | Dígito zero | 112 | p | Letra minúscula p |
| 49 | 1 | Dígito um | 113 | q | Letra minúscula q |
| 50 | 2 | Dígito dois | 114 | r | Letra minúscula r |
| 51 | 3 | Dígito três | 115 | s | Letra minúscula s |
| 52 | 4 | Dígito quatro | 116 | t | Letra minúscula t |
| 53 | 5 | Dígito cinco | 117 | u | Letra minúscula u |
| 54 | 6 | Dígito seis | 118 | v | Letra minúscula v |
| 55 | 7 | Dígito sete | 119 | w | Letra minúscula w |
| 56 | 8 | Dígito oito | 120 | x | Letra minúscula x |
| 57 | 9 | Dígito nove | 121 | y | Letra minúscula y |
| 58 | : | Dois-pontos | 122 | z | Letra minúscula z |
| 59 | ; | Ponto e vírgula | 123 | { | Chave esquerda |
| 60 | < | Menor que | 124 | ||
| 61 | = | Igual | 125 | } | Chave direita |
| 62 | > | Maior que | 126 | ~ | Til |
| 63 | ? | Interrogação | 127 | DEL | Delete |
Anteriormente falei que ela define a relação entre binários → decimais → letras e símbolos certo? Sim e não, como podemos ver, ela explicitamente definiu as correspondências em decimais para os símbolos como usamos, então vamos descobrir o binário de algumas dessas letras.
Observe que na tabela a representação decimal vai de 0 a 127 — ou seja, 128 números no total.
Pra saber quantas posições em binário precisamos, lembramos das potências de 2:
2⁰ = 1
2¹ = 2
2² = 4
2³ = 8
2⁴ = 16
2⁵ = 32
2⁶ = 64
2⁷ = 128
Repare: até 2⁶ temos 64 — insuficiente pra representar todos os 128 valores.
Já 2⁷ = 128, ou seja, cobrimos exatamente o intervalo 0–127.
Portanto, precisamos de 7 bits pra representar todos os códigos ASCII originais.
Vejamos:
0 1 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1
Temos uma sequência binária com um espaço proposital a cada 8 bits — e assim nasce o que conhecemos como byte.
- Primeira sequência → 01001111 → 79
- Segunda sequência → 01101100 → 108
- Terceira sequência → 01100001 → 97
Consultando na tabela ASCII:
79 → O, 108 → l, 97 → a
Resultado: Ola
Nesse ponto, você talvez esteja se perguntando:
“Mas e os acentos, emojis e símbolos diferentes de outros idiomas?”
Excelente pergunta.
O ASCII foi só o começo — ele limitava o mundo a 128 símbolos.
Pra representar todas as línguas, caracteres especiais e ícones modernos, surgiu um novo padrão: UTF-8.
UTF-8
O UTF-8 (Unicode Transformation Format – 8 bits) expandiu o conceito de codificação.
Ele manteve compatibilidade total com o ASCII, mas agora cada caractere pode ocupar de 1 a 4 bytes, dependendo da complexidade do símbolo.
Isso significa que:
- letras comuns (
A–Z,a–z, números, pontuação) ainda usam 1 byte, - acentos, ideogramas e emojis podem usar 2, 3 ou 4 bytes.
Ou seja: o mesmo sistema de 0s e 1s, só que com um vocabulário universal.
- ASCII: 7 bits → 128 símbolos
- UTF-8: até 4 bytes → mais de 1 milhão de símbolos possíveis
- Ambos: baseados em puro binário. Nenhum “novo número”, só mais combinações.
Temos outros padrões como UTF-16, UTF-32, mas devido as suas desvantagens o UTF-8 foi a melhor escolha com maior eficiência em memória.
Palavras finais
Antes de finalizarmos, gostaria de retornar a um assunto inicial, tudo bem, falamos de números, 0s e 1s, mas na prática, como um computador consegue interpretar essa maravilha matemática? E é muito simples como você mesmmo já deve ter ouvido, eletricidade, no lugar de 0s e 1s poderíamos trocar para um disjuntor de 3 lâmpadas por exemplo, se temos
apagada apagada acesa
O que temos acima?
Teríamos o equivalente ao número 1 em binário.
E é exatamente assim que um computador processa tudo, um pequeno chip de ~1.5pol com bilhões de transistores que coordenam como chaves/interruptores o fluxo de energia para representarem os 0s e 1s.
Tinha que deixar o melhor para o final.
E por aqui terminamos nosso tour sobre os números binários.