Executando verificação de segurança...
18

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:

100×1 + 10×2 + 1×3 = 123

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:

4×0 + 2×0 + 1×0 = 0

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

8×1 + 4×0 + 2×0 + 1×0 = 8

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.

DecSímboloDescriçãoDecSímboloDescrição
0NULNull64@Arroba
1SOHStart of Heading65ALetra maiúscula A
2STXStart of Text66BLetra maiúscula B
3ETXEnd of Text67CLetra maiúscula C
4EOTEnd of Transmission68DLetra maiúscula D
5ENQEnquiry69ELetra maiúscula E
6ACKAcknowledge70FLetra maiúscula F
7BELBell (beep)71GLetra maiúscula G
8BSBackspace72HLetra maiúscula H
9TABTabulação horizontal73ILetra maiúscula I
10LFLine Feed (nova linha)74JLetra maiúscula J
11VTTabulação vertical75KLetra maiúscula K
12FFForm Feed76LLetra maiúscula L
13CRCarriage Return (retorno)77MLetra maiúscula M
14SOShift Out78NLetra maiúscula N
15SIShift In79OLetra maiúscula O
16DLEData Link Escape80PLetra maiúscula P
17DC1Device Control 181QLetra maiúscula Q
18DC2Device Control 282RLetra maiúscula R
19DC3Device Control 383SLetra maiúscula S
20DC4Device Control 484TLetra maiúscula T
21NAKNegative Acknowledge85ULetra maiúscula U
22SYNSynchronous Idle86VLetra maiúscula V
23ETBEnd of Trans. Block87WLetra maiúscula W
24CANCancel88XLetra maiúscula X
25EMEnd of Medium89YLetra maiúscula Y
26SUBSubstitute90ZLetra maiúscula Z
27ESCEscape91[Colchete esquerdo
28FSFile Separator92\Barra invertida
29GSGroup Separator93]Colchete direito
30RSRecord Separator94^Circunflexo
31USUnit Separator95_Subtraço
32(espaço)Espaço96`Crase
33!Exclamação97aLetra minúscula a
34"Aspas duplas98bLetra minúscula b
35#Cerquilha (hash)99cLetra minúscula c
36$Cifrão100dLetra minúscula d
37%Porcentagem101eLetra minúscula e
38&E comercial102fLetra minúscula f
39'Apóstrofo103gLetra minúscula g
40(Parêntese esquerdo104hLetra minúscula h
41)Parêntese direito105iLetra minúscula i
42*Asterisco106jLetra minúscula j
43+Mais107kLetra minúscula k
44,Vírgula108lLetra minúscula l
45-Hífen109mLetra minúscula m
46.Ponto110nLetra minúscula n
47/Barra111oLetra minúscula o
480Dígito zero112pLetra minúscula p
491Dígito um113qLetra minúscula q
502Dígito dois114rLetra minúscula r
513Dígito três115sLetra minúscula s
524Dígito quatro116tLetra minúscula t
535Dígito cinco117uLetra minúscula u
546Dígito seis118vLetra minúscula v
557Dígito sete119wLetra minúscula w
568Dígito oito120xLetra minúscula x
579Dígito nove121yLetra minúscula y
58:Dois-pontos122zLetra minúscula z
59;Ponto e vírgula123{Chave esquerda
60<Menor que124
61=Igual125}Chave direita
62>Maior que126~Til
63?Interrogação127DELDelete

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.

  1. Primeira sequência → 01001111 → 79
  2. Segunda sequência → 01101100 → 108
  3. 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.

Carregando publicação patrocinada...
2

Namoral, que sacanagem!
Tive até que resgatar minha conta para responder isso aqui.

Você fez as informações parecerem simples enunciados, sem sentidos ambíguos ou analogias que frequentemente confundem mais do que esclarecem. A forma como iniciou explicando binários para em seguida ensinar sua relação com a representação dos nossos símbolos linguísticos trouxe uma progressão clara e direta, consequentemente tornando a sequência de informações em um conhecimento de fácil compreensão. Ainda preocupou-se em tratar do assunto de maneira abrangente, explicando além do que se vê em cursos e muitas aulas ao tratar de utf-8, aumentando a profundidade do saber e concluindo por realizar o relacionamento de todo o assunto com sua raiz, os transistores dos processadores de computador.

Acabei me prolongando, mas este conteúdo merece. Já tive estes assuntos em meu curso técnico mas os compreendi finalmente com seu texto. Ademais, por favor, continue!

1

Ô meu nobre, não poderia ficar mais feliz nesse dia de hoje depois desse comentário, fico muito feliz em ter contribuído, e pretendo escrever mais materiais como esse, só infelizmente acabo tendo um espaço de tempo maior do que eu gostaria entre o tempo que escrevo um e outro, então se tiver algum tópico pra sugerir ficaria ainda mais grato.

1

Fantástico, e melhor que isso, simples. (não consigo parar de pensar que enquanto eu escrevo esse comentário meu computador interpreta isso, e ao enviar ele vai enviar isso pra um servidor que vai interpretar e exibir isso a alguém)

0
1

Cara, eu como programador de sistemas baixo nível, fiquei impressionado, nunca olhei para sistemas binários do mesmo jeito que você demonstrou, foi tudo tão simples e direto,

0