Aprender a programar vai além dos números; é essencial entender o funcionamento do hardware e as escolhas que você faz como programador.
Você, leitor, provavelmente sabe o que é o sistema decimal (de 0 até 9) e como ele está presente no nosso dia a dia, principalmente no código que escrevemos. Dito isso, tudo o que compõe o que usamos na programação está cada vez mais abstrato, ou seja, não sabemos ao certo o que está acontecendo por de baixo dos panos.
Essa habilidade é essencial não apenas como mais um conhecimento, mas sim para se tornar um verdadeiro desenvolvedor, que não apenas desenvolve as aplicações que usamos mas que sabe tirar todo a performance e capacidade de processamento do hardware.
Sistemas de numeração são um dos conceitos fundamentais na hora de entender como as aplicações que desenvolvemos funcionam no nível mais baixo de hardware e como os componentes interpretam as instruções que nós desenvolvedores passamos para que o computador possa processar.
O Que São Binários?
Assim como o sistema decimal de base 10 (utilizando 10 símbolos diferentes para representar todos os números), o sistema de numeração Binário de base 2 (sendo representado pelos símbolos 0 e 1) é usado principalmente pelo hardware na leitura, escrita e armazenamento de instruções, como por exemplo nos chips de processamento, também conhecidos como CPU (Central Processing Unit), localizados na placa mãe de um dispositivo.
O processamento de dados é facilitado por esse sistema, pois apenas dois símbolos podem ser capazes de traduzir qualquer instrução que seja desde números até palavras ou símbolos. E como isso é possível?
De forma bem superficial, os números decimais como conhecemos não são entendidos pela máquina e por isso é feita uma conversão para os números binários.
A conversão funciona da seguinte forma:
Pegamos como exemplo o número 100 e já que queremos ele em numeração binária, temos que dividi-lo por 2 até o fim. Depois de fazer esse cálculo, pegamos todos os restos das divisões feitas e os organizamos lendo de baixo para cima, resultando no número 1100100 como mostrado na imagem abaixo:

Agora que sabemos como é feita a conversão de números decimais para números binários, você pode estar se perguntando como é feito para que o computador entenda o que são letras e símbolos do nosso e de outros alfabetos, já que, obviamente, não é possível dividi-los por 2 como fizemos com os decimais anteriormente. Nesse caso você provavelmente já deve ter ouvido falar na American Standard Code for Information Interchange, mais conhecido como tabela ASCII.
Muito depois da invenção da arquitetura de computadores que conhecemos hoje desenvolvida por John Von Neumann (1945), a tabela ASCII foi só criada em 1961 e publicada somente em 1963 pela ANSI (American Standards Institute). A princípio ela define um padrão para todas a letras e símbolos que conhecemos para que o hardware possa converter isso em binário na qual a CPU irá processar, como apresentado na imagem abaixo:

Conforme o tempo foi passando e a tecnologia evoluindo, ficou inviável para que programadores pudessem continuar utilizando diretamente o binário no desenvolvimento de software e principalmente por esse motivo, começou a ser utilzado números Hexadecimais ao invés de números Binários.
O que São Hexadecimais?
Hexadecimal é um sistema de numeração de base 16 sendo usado usado inicialmente no anos 50 e tomando tração no início dos anos 60.
É representado de 0 até 9 e do décimo primeiro até o décimo sexto símbolo sendo representado de A até F. Nesse sistema, ao contrário do binário, você pode reproduzir valores maiores mas com poucos digitos. Isso facilitou muito uma leitura mais conveniente dos números binários extensos que antes era difícies de serem manipulados por quem era desenvolvedor.
Além disso, números decimais também podem ser convertidos para números binários e para isso irei utilizar o número decimal 100 do exemplo anterior na figura abaixo:

A conversão funciona da mesma forma que a dos decimais. A diferença é que ao invés do número 2, você terá que dividir por 16 até o final. O resto de todas as divisões será lido de baixo para e cima e esse será o número convertido.
Agora que você já sabe como funciona a conversão, vamos ver outro exemplo, convertendo um número muito maior para hexadecimal e comparar com o binário do mesmo decimal, como mostrado na imagem abaixo:

Como você já deve ter percebido, a leitura de números decimais maiores é muito mais conveniente em hexadecimal em comparação com binários. Isso fez muita diferença e facilitou muito no desenvolvimento de software a partir dos anos 60.
Não se limitando somente a uma facilidade na leitura, números Hexadecimais também são mais fáceis de serem convertidos para binário e vice-versa. Para isso, existe uma tabela de conversão de hexadecimais para binários como na imagem abaixo:

Linguagens como Assembly (uma das primeiras linguagens de baixo nível inventadas), usam como sintaxe, números Hexadecimais e para representá-los no código, é inserido 0x antes de qualquer hexadecimal, como no exemplo tirado de um trecho de código em Assembly abaixo:

Você não precisa saber o que significam as instruções e o que elas fazem na imagem, mas perceba que os hexadecimais são acompanhados de 0x, como mencionei anteriormente.
Afinal, Porque Preciso Saber Disso?
Com o constante aumento do nível de abstração na área de tecnologia, muitos profissionais da área não compreendem como um computador realmente processa as informações que manipulamos diariamente. Para se tornar um programador de verdade, é essencial entender como um computador funciona internamente e como tirar o máximo de desempenho de um hardware. Somente dessa forma você será capaz de tomar decisões mais informadas e eficazes no seu trabalho.
O que me preocupa profundamente é a cultura do “vibe coding” que está dominando a nossa geração de programadores. A aceitação generalizada de código gerado por IA, sem questionamento ou compreensão, se tornou algo quase normal. Hoje, é comum as pessoas recorrerem ao ChatGPT ou outras IAs generativas para resolver problemas sem entender o que realmente está acontecendo. Isso cria uma dependência de ferramentas que, embora úteis, podem diminuir nossa capacidade de pensar criticamente e resolver problemas de forma independente.
Vejo isso como um processo gradual, onde nossa criatividade está sendo comprometida. Chegará um momento em que ninguém saberá mais o que é viver sem essas tecnologias. O conforto e a facilidade proporcionados pelas IAs têm, sem dúvida, revolucionado a humanidade, mas também sinto que o uso desenfreado dessas ferramentas pode gerar impactos profundos em diversas áreas, cujas consequências podem ser irreversíveis.
Ao contrário de muitos conteúdos superficiais e sensacionalistas nas redes sociais e até mesmo aqui no Medium, meu objetivo é ir na direção oposta. Não vou me prender a vídeos curtos, títulos chamativos ou ideias simplistas. Quero oferecer conteúdos valiosos, que não só me ajudem a aprender mais sobre os temas que abordo, mas também transmitam um conhecimento profundo e detalhado para aqueles que realmente desejam se tornar programadores de verdade.
Se você quiser se aprofundar nos tópicos que mencionei neste artigo, deixarei alguns links abaixo. Obrigado por ler!