Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Memória — FCC 2016

Arquitetura de ComputadoresMemória
Código
fc030373
Banca
FCC
Órgão
Prefeitura de Teresina - PI
Ano
2016
Nível
Superior
Cargo
Analista Tecnológico - Analista de Sistemas
Considere que um Analista de Sistemas da PRODATER tem as seguintes informações:− O computador possui 4GB de memória RAM.− O compilador da linguagem de programação A utiliza 2 bytes para armazenar um número inteiro.− O compilador da linguagem de programação B utiliza 4 bytes para armazenar um número inteiro.Diante destas informações, é correto afirmar que
  1. Asão necessários 30 bits para endereçar qualquer posição da memória RAM.
  2. Bsão necessários 6 dígitos em hexadecimal para endereçar qualquer posição da memória RAM.
  3. Cuma variável inteira da linguagem de programação A consegue armazenar o número decimal 100000 ou o número decimal −100000.
  4. Duma variável inteira da linguagem de programação B consegue armazenar o número decimal 10000000 ou o número decimal -10000000.
  5. Euma variável inteira da linguagem de programação A consegue armazenar o número binário 1111111100000000 somado com o binário 1000000011111111.
Revelar gabarito e comentário

GabaritoD — uma variável inteira da linguagem de programação B consegue armazenar o número decimal 10000000 ou o número decimal -10000000.

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”.

Capacidade de endereçamento e representação de inteiros

Gabarito: letra D. Com 4 GB de memória RAM (2^32 bytes), são necessários 32 bits para endereçar cada byte. A linguagem B usa 4 bytes (32 bits) para inteiros, que suporta valores entre -2.147.483.648 e 2.147.483.647, portanto armazena 10.000.000 e -10.000.000. As demais alternativas incorrem em erros de conta ou extrapolação da capacidade.

A questão testa dois conceitos: (1) cálculo de bits de endereçamento a partir da capacidade de memória e (2) faixa de valores representáveis por inteiros em complemento de dois com determinado número de bytes.

Alternativa A — ❌ Incorreta

Afirma que são necessários 30 bits para endereçar qualquer posição da RAM de 4 GB. 4 GB = 4 × 2^30 bytes = 2^32 bytes, portanto são necessários 32 bits (2^32 posições). 30 bits endereçariam apenas 2^30 = 1 GB.

Alternativa B — ❌ Incorreta

Diz que bastam 6 dígitos hexadecimais. Cada dígito hexa representa 4 bits. Para 32 bits, são necessários 32/4 = 8 dígitos hexadecimais. 6 dígitos cobririam apenas 24 bits.

Alternativa C — ❌ Incorreta

A linguagem A usa 2 bytes (16 bits) para inteiros. Em complemento de dois, a faixa é de -2^15 a 2^15-1, ou seja, de -32.768 a 32.767. O número 100.000 (e seu negativo -100.000) está muito acima desse limite.

Alternativa D — ✅ Correta ⟵ GABARITO

A linguagem B usa 4 bytes (32 bits). Em complemento de dois, a faixa é de -2^31 a 2^31-1, isto é, de -2.147.483.648 a 2.147.483.647. O número 10.000.000 (positivo e negativo) está dentro dessa faixa, portanto pode ser armazenado.

PEGA ESSA DICA!

Para resolver rapidamente, calcule a faixa com a fórmula: para nn bits, valores de 2n1-2^{n-1} a 2n112^{n-1}-1. Decore os limites comuns: 8 bits → -128 a 127; 16 bits → -32.768 a 32.767; 32 bits → -2,1 bi a 2,1 bi.

Alternativa E — ❌ Incorreta

Os binários fornecidos são de 16 bits cada: 1111111100000000 = 65.280; 1000000011111111 = 33.023. A soma é 98.303, que excede o máximo de 32.767 representável com 2 bytes (linguagem A).

Gabarito: letra D.

Link permanente: /questoes/fc030373