Questão de Arquitetura de Computadores — Memória — FCC 2016
Arquitetura de Computadores›Memó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
Asão necessários 30 bits para endereçar qualquer posição da memória RAM.
Bsão necessários 6 dígitos em hexadecimal para endereçar qualquer posição da memória RAM.
Cuma variável inteira da linguagem de programação A consegue armazenar o número decimal 100000 ou o número decimal −100000.
Duma variável inteira da linguagem de programação B consegue armazenar o número decimal 10000000 ou o número decimal -10000000.
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 bits, valores de a . 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).