GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF69CO08Média⏱ medio

Em um algoritmo que armazena múltiplas permissões binárias por usuário, qual escolha de variável é mais…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO08

Compreender e utilizar diferentes formas de armazenar, manipular, compactar e recuperar arquivos, documentos e metadados.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Em um algoritmo que armazena múltiplas permissões binárias por usuário, qual escolha de variável é mais eficiente em memória: um vetor de booleanos ou um inteiro que usa bitmask?

  1. A) Um vetor de strings, já que é mais fácil entender para os usuários.
  2. B) Um vetor de inteiros, já que pode armazenar mais permissões de uma vez.
  3. C) Uma variável inteira que usa bitmask.
  4. D) Um caractere, pois permite armazenar até 256 permissões diferentes.
  5. E) Um vetor de booleanos, pois é mais simples para o programador.

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. Cada permissão é binária (concedida ou negada), ou seja, basta 1 bit de informação para representar cada uma. A pergunta é qual estrutura gasta menos memória para guardar várias dessas informações. Passo 2: Um vetor de booleanos normalmente ocupa pelo menos 1 byte (8 bits) por elemento em muitas linguagens, desperdiçando 7 bits por permissão. Passo 3: Um inteiro usando bitmask guarda cada permissão em um único bit. Um inteiro de 32 bits comporta 32 permissões, e operações como AND, OR e deslocamentos permitem testar, conceder e revogar cada uma. Passo 4: Comparando com 32 permissões, o bitmask ocupa 4 bytes, enquanto um vetor de booleanos com 1 byte por elemento ocuparia 32 bytes. Passo 5: Portanto a alternativa C está correta, e o gabarito oficial coincide com essa conclusão. Passo 6: Por que as outras estão erradas: A) um vetor de strings é o formato que mais consome memória e a facilidade de leitura para o usuário não tem relação com eficiência de memória. B) um vetor de inteiros gasta pelo menos 4 bytes por elemento, então armazenar mais valores por elemento não reduz o uso total de memória. D) um caractere ocupa 1 byte e tem 256 combinações de valor, mas isso não equivale a 256 permissões independentes; com bitmask, esse byte guardaria apenas 8 flags. E) um vetor de booleanos é simples de programar, mas essa simplicidade tem custo maior de memória do que o bitmask. Observação: em algumas linguagens, como C++ com vector de bool, os booleanos já são empacotados em bits, então a diferença depende da implementação, mas a resposta geral do enunciado é o bitmask.

💡 Dica: Considere a eficiência de armazenamento de cada opção.

Alternativa por alternativa

A Erradaerro: Senso comum

Confunde eficiência de memória com facilidade de compreensão para os usuários, como se a legibilidade determinasse o consumo de memória. Também supõe que strings seriam uma forma compacta de guardar permissões.

B Erradaerro: Conceituala que mais engana

Acredita que poder armazenar mais permissões em uma única variável significa usar menos memória, ignorando que cada inteiro ocupa vários bytes mesmo quando usado para um único bit.

Por que engana: Escolher um vetor de booleanos por achar que é mais simples, sem considerar a eficiência de memória.

C Correta

Bitmask usa cada bit do inteiro para representar uma permissão, reduzindo significativamente o uso de memória e permitindo operações bitwise (AND, OR, XOR) rápidas; vetores de booleanos têm overhead por elemento.

D Erradaerro: Conceitual

Confunde o número de valores distintos que um caractere de 1 byte pode assumir (256) com o número de permissões independentes que podem ser marcadas, que é o que importa aqui.

E Erradaerro: Senso comum

Acha que a simplicidade de uso para o programador implica menor uso de memória, sem perceber que cada booleano costuma ocupar 1 byte, enquanto o bitmask empacota várias permissões em bits.

Raio-X da questão

Dificuldade Média
Bloom Aplicar
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade dupla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

permissões binárias

📌 Objetivo

avaliacao

🧱 Pré-requisitos

permissões binárias · bitmask

📚 Reveja

Revisar conceitos de estruturas de dados e eficiência de memória.

⚠️ Erro mais comum

Escolher um vetor de booleanos por achar que é mais simples, sem considerar a eficiência de memória.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

tomada_decisao

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Armazenamento e Transmissão de dados - Gestão de dados

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.