M.
HomeProjectsBlogMarketplaceAbout
ContactGet my CV

Built by Mário Afonso. The source code is available on GitHub.

← Back to Blog
Learning C
December 8, 2025

Do you know how data types work in the C programming language?

Today we're going to delve a little deeper into data types in C, and the reasons behind them.

Você Já se perguntou como a máquina sabe que um determinado valor armazenado é int ou char?

Qualquer tipo seja int, char ou outro qualquer, sempre guarda o valor em binário, mesmo que no código escrevas:

int x = 42;

O valor verdadeiro guardado sempre será binário:

00101010

O computador não guarda decimal, não guarda hex, não guarda octal nem tão pouco char — só bits. O código escrito é apenas REPRESENTAÇÃO HUMANA

Toda linguagem foi exatamente criada e estruturada para se aproximar a linguagem humana, justamente para facilitar a compreensão, mas ao compilar ela é convertida usado o calculos como sistemas de conversões e passado para a máquina, ou seja o teu int, ou o teu hex, nem chega na máquia nessas bases, tudo o que a máquina interpreta é informação já compilada.

Então, quando escreves 42 ou char, isso é só texto no teu código. O compilador faz:

42 (decimal) → 00101010 (binário na memória)

Mas então e como imprimimos sempre no formato correcto?

Para isso temos as formatadoras %d, %p, %f, o %d do printf diz:

“Interpreta estes bits como decimal.” Ou seja:

printf("%d", x);

O printf pega nos bits dentro de x e mostra em decimal, se usares %x, %o, %b → a interpretação muda, ou seja, o mesmo valor binário, em vários sistema de numeração:

printf("%d", x); // decimal → 42 printf("%x", x); // hex → 2a printf("%o", x); // octal → 52

Os bits são os mesmos.

Não confunda os tipos com base, por ex. int é um TIPO, não uma base, ele é apenas um recipiente de bits (32 bits normalmente). A “base” só existe no:

  • código-fonte (quando escreves 42 ou 0x2A)
  • output (printf escolhe como mostrar)

🧠 Resumo super claro:

  • O computador só armazena binário;
  • Nós representamos números em decimal;
  • O printf converte de binário → base que pedimos;
  • Um int é só um conjunto de bits;
  • O que muda é como tu pedes para mostrar esses bits;

✨ Então, :

Um tipo (int, char) armazena a informação em binário. Por exemplo: int = 42, é só a forma como nós humanos escrevemos o código para trabalhar com números utilizando uma determinada linguagem de programação, e para vermos no terminal na mesma base interpretamos esses valores usando %d no caso da linguagem C, caso usássemos uma outra flag de formatação, veríamos o mesmo valor mas em outra base, porém o computador sempre vê em binário.

Written by

Victor

View All PostsGet in Touch