Solução e Explicação Detalhada: Aula 02 - Representação de Dados
Abaixo estão as respostas esperadas e o embasamento teórico para os exercícios propostos na Aula 02.
Solução da Questão 1 - 1. Sistema Binário e Hexadecimal (Básico 1)
**Explicação Detalhada do Assunto:**
O computador compreende nativamente a base 2 (Binário). Como a escrita binária é muito longa para os humanos, nós a agrupamos em Blocos de 4 (Base 16 - Hexadecimal).
Por que `Hexadecimal` é amado pelos desenvolvedores C/C++? Um *Byte* (8 bits) pode ser perfeitamente representado por exatos dois caracteres Hexadecimais. `FF` é o mesmo que `11111111`.
> [!info] Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de *1. Sistema Binário e Hexadecimal* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 2 - 2. Inteiros com e sem Sinal (Unsigned) (Básico 2)
**Explicação Detalhada do Assunto:**
Em C/C++, o rigor nos tipos provém diretamente do hardware:
No hardware, inteiros negativos são representados usando a regra de **Complemento de 2**. Para obtermos o binário do `-1`, invertemos todos os bits de `1` e somamos `1`.
> [!info] Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de *2. Inteiros com e sem Sinal (Unsigned)* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 3 - 3. Ponto Flutuante (IEEE 754) (Intermediário 1)
**Explicação Detalhada do Assunto:**
Os famosos tipos `float` e `double`. O processador possui normalmente um setor dedicado de FPU (Floating Point Unit) para eles.
A representação oficial **IEEE 754** os divide em 3 porções:
### O Perigo da Precisão!
> [!info] Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de *3. Ponto Flutuante (IEEE 754)* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 4 - Resumo Prático (Intermediário 2)
**Explicação Detalhada do Assunto:**
A maneira como você escolhe o tipo primitivo da variável modela a fisionomia do registrador acionado na máquina durante o *fetch*. Entender o *Overflow* é a proteção básica contra corrupção lógica do código.
> [!info] Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de *Resumo Prático* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.
Solução da Questão 5 - 1. Sistema Binário e Hexadecimal (Desafio)
**Explicação Detalhada do Assunto:**
O computador compreende nativamente a base 2 (Binário). Como a escrita binária é muito longa para os humanos, nós a agrupamos em Blocos de 4 (Base 16 - Hexadecimal).
Por que `Hexadecimal` é amado pelos desenvolvedores C/C++? Um *Byte* (8 bits) pode ser perfeitamente representado por exatos dois caracteres Hexadecimais. `FF` é o mesmo que `11111111`.
> [!info] Expectativa de Resposta
O aluno deve inferir com clareza que o conceito de *1. Sistema Binário e Hexadecimal* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.