Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FCC 2023

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
fc068628
Banca
FCC
Órgão
Copergás - PE
Ano
2023
Nível
Superior
Cargo
Analista Sistemas
Considere os seguintes dados a serem armazenados em variáveis, em condições ideais:I. F28A05B16II. 11111000001010102III. 17894506.7583Os tipos de variáveis que conseguem armazenar adequadamente e sem perdas os valores constantes em I, II e III são, correta e respectivamente:
  1. Aponto fixo de 2 bytes − inteiro de 2 bytes com sinal − ponto flutuante de 4 bytes.
  2. Binteiro de 2 bytes − inteiro de 4 bytes com sinal − ponto fixo de 2 bytes.
  3. Cinteiro de 4 bytes − inteiro de 2 bytes sem sinal − ponto flutuante de 4 bytes.
  4. Dinteiro de 4 bytes − inteiro de 2 bytes com sinal − ponto flutuante de 1 byte.
  5. Eponto flutuante de 4 bytes − inteiro de 1 byte sem sinal − ponto fixo de 2 bytes.
Revelar gabarito e comentário

GabaritoC — inteiro de 4 bytes − inteiro de 2 bytes sem sinal − ponto flutuante de 4 bytes.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Tipos de dados para valores numéricos com e sem sinal

Gabarito: letra C. O valor I (F28A05B em hexadecimal) cabe em 4 bytes (32 bits); o valor II (1111100000101010 em binário = 63530) ultrapassa o limite do inteiro com sinal de 2 bytes, necessitando de 2 bytes sem sinal; o valor III (17894506.7583) possui parte decimal, exigindo ponto flutuante de 4 bytes.

A questão testa a capacidade de identificar o menor tipo inteiro capaz de armazenar um número sem perda, considerando os limites de cada representação.


Valor I — F28A05B16

O valor é um hexadecimal de 7 dígitos: F28A05B (considerando que o "16" subscrito indica base). Em decimal, corresponde a 254.320.731, que cabe em um inteiro de 4 bytes (32 bits) sem sinal (máx. 4.294.967.295) e também com sinal (máx. 2.147.483.647). Portanto, o tipo adequado é inteiro de 4 bytes.

Valor II — 11111000001010102

Conversão para decimal: 63530. O maior valor para um inteiro com sinal de 2 bytes (16 bits) é 32767; para sem sinal é 65535. Como 63530 > 32767, ele não cabe em um inteiro com sinal de 2 bytes, mas cabe perfeitamente em um inteiro sem sinal de 2 bytes. Logo, o tipo correto é inteiro de 2 bytes sem sinal.

Valor III — 17894506.7583

Apresenta parte fracionária, portanto requer um tipo de ponto flutuante. A opção disponível é ponto flutuante de 4 bytes (float). Embora possa haver perda de precisão para números muito grandes, este valor está dentro da faixa de representação (aproximadamente 7 dígitos significativos) e é a escolha mais adequada entre as alternativas apresentadas.


Alternativa A — ❌ Incorreta

  • ponto fixo de 2 bytes para I: inadequado, pois I é inteiro e requer 4 bytes.

  • inteiro de 2 bytes com sinal para II: não comporta 63530 (limite 32767).

  • ponto flutuante de 4 bytes para III: correto isoladamente, mas as anteriores erram.

Alternativa B — ❌ Incorreta

  • inteiro de 2 bytes para I: insuficiente (cabe apenas até 65535, I vale 254 milhões).

  • inteiro de 4 bytes com sinal para II: embora armazene, não é o tipo mais adequado (usa mais espaço); além disso, a sequência não corresponde à ordem pedida.

  • ponto fixo de 2 bytes para III: não consegue representar adequadamente o valor com parte decimal.

Alternativa C — ✅ Correta ⟜ GABARITO

  • inteiro de 4 bytes para I: exato.

  • inteiro de 2 bytes sem sinal para II: exato.

  • ponto flutuante de 4 bytes para III: adequado.

Alternativa D — ❌ Incorreta

  • inteiro de 4 bytes para I: correto.

  • inteiro de 2 bytes com sinal para II: falha (63530 > 32767).

  • ponto flutuante de 1 byte para III: não existe na prática (1 byte de ponto flutuante não tem precisão suficiente).

Alternativa E — ❌ Incorreta

  • ponto flutuante de 4 bytes para I: desnecessário e pode introduzir imprecisão; inteiro é mais adequado.

  • inteiro de 1 byte sem sinal para II: 1 byte só vai até 255.

  • ponto fixo de 2 bytes para III: não comporta o valor.

NÃO CAIA NESSA!

A banca explora a diferença entre inteiros com e sem sinal. O candidato pode esquecer que o binário 1111100000101010 vale 63530, que excede o limite do signed short (32767). Preste atenção nos intervalos: sempre converta o valor para decimal e compare com os limites de cada tipo.

Gabarito: letra C — respectivamente: inteiro de 4 bytes, inteiro de 2 bytes sem sinal, ponto flutuante de 4 bytes.

Link permanente: /questoes/fc068628