Questão nº 32
Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 32)
Durante o desenvolvimento de um novo software de criptografia, o analista João se depara com a necessidade de converter dados entre diferentes sistemas de numeração para otimizar o processamento e garantir a segurança. Além disso, ele precisa aplicar operações aritméticas específicas nesses dados. Considerando esses requisitos, João decide implementar uma função que realiza a conversão de um número hexadecimal para binário e, em seguida, aplica uma operação de deslocamento à direita (shift right) de 2 bits no resultado binário.
Se o número hexadecimal de entrada é "3F", o resultado final após a operação de deslocamento à direita, em hexadecimal, é:
- A0F; (alternativa correta)
- B4F;
- C00F;
- D0FC;
- E00FC.
Resposta comentada
Gabarito Alternativa A
Um sistema de numeração hexadecimal usa 16 símbolos (0-9 e A-F) para representar números, onde cada símbolo hexadecimal corresponde a 4 bits binários. A operação de deslocamento à direita (shift right) move todos os bits de um número para a direita, descartando os bits que saem pela direita e preenchendo com zeros à esquerda.
- (A) Correta: O número hexadecimal "3F" é convertido para binário como "00111111" (cada dígito hexadecimal '3' e 'F' vira 4 bits binários: '0011' e '1111'). Ao aplicar um deslocamento à direita de 2 bits em "00111111", os dois bits mais à direita ('11') são descartados e dois zeros ('00') são adicionados à esquerda, resultando em "00001111". Convertendo "00001111" de volta para hexadecimal, obtemos "0F" (os primeiros 4 bits '0000' são '0', e os últimos 4 bits '1111' são 'F').
- (B) Incorreta: "4F" hexadecimal (79 em decimal) não pode ser obtido a partir de "3F" hexadecimal (63 em decimal) por um deslocamento à direita, pois essa operação sempre resulta em um valor menor ou igual.
- (C) Incorreta: Embora "00F" represente o mesmo valor que "0F", a representação "0F" é a mais concisa e comum para o resultado de um byte (8 bits), sem sugerir um número maior de bits desnecessariamente.
- (D) Incorreta: "0FC" hexadecimal (252 em decimal) seria o resultado se a operação fosse um deslocamento à esquerda de 2 bits ("00111111" << 2 = "11111100" binário = "FC" hexadecimal). A armadilha da banca aqui é confundir a direção do deslocamento, trocando direita por esquerda.
- (E) Incorreta: "00FC" é o mesmo valor que "0FC", mas com uma representação que sugere um número maior de bits, e o valor em si está incorreto por confundir o deslocamento à direita com o deslocamento à esquerda.
Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Web Designer (Caderno Tipo 1). Reproduzida para fins de estudo.