Concurso: Conversão hexadecimal, octal e binária

Esta questão vem do NC-UFPR, Concurso da Itaipu para Engenharia Eletrônica em 2019.

Esta questão tinha erros de digitação nos valores das entradas dos sistemas, onde foi deixado a fonte das bases (16 e 8), que normalmente é subscrito, do mesmo tamanho que os valores. Por exemplo, o texto original era “SISTEMA A = 1AD16” em vez de “SISTEMA A = 1AD16”.

Questão

(Adaptada) 32 – Um algorítmo avalia valores obtidos de dois sistemas de aquisição, o SISTEMA A e o SISTEMA B. O SISTEMA A comunica-se com valores na base hexadecimal, e o SISTEMA B, na base octal. Os valores são capturados e multiplicados um pelo outro, na forma r = SISTEMA A * SISTEMAB, e o resultado da operação é nominado de r. O valor de r é então convertido em binário e armazenado em uma variável de 16 bits, aqui nominada de s. No caso de ocorrência de overflow (valor r >= 216), todos os 16 bits são marcados com 1, indicando uma leitura não válida. Acerca disso, considere as seguintes entradas:

  • SISTEMA A = 1AD16 e SISTEMA B = 58
  • SISTEMA A = 1F716 e SISTEMA B = 128
  • SISTEMA A = AA116 e SISTEMA B = 148

Essas entradas geram, respectivamente, as seguintes sequências de s:

a) 0000100001100001 – 0001001110100110 – 0111111110001100.

b) 0000100001100011 – 1001101111110110 – 1111111111111111.

c) 1000000001000000 – 1111000000000000 – 1000000000000001.

d) 1010101010101001 – 1111111111111111 – 1111111111111111.

e) 0100101001100001 – 0101001111010110 – 0110111100001001.

Forma padrão de resolver

Em primeiro lugar podemos ver que não há respostas ambíguas para as duas primeiras entradas, ou seja, qualquer uma das duas que escolhermos nos dará a resposta correta. Para a terceira entrada aparece duas vezes a resposta 11…111.

Escolhemos a primeira entrada, convertemos os números para decimal e multiplicamos eles.

1AD16 = 1.1010.1101 = 256+128+32+8+4+1 = 429

58 = 5

429×5 = 2145

Agora basta converter o resultado para binário. Realizando a divisão sucessiva por dois obtemos o seguinte valor em binário a partir dos restos.

R  Q
   2145
1  1072 
0   536
0   268
0   134
0    67
1    33
1    16
0     8
0     4
0     2
0     1
1     0

2145 = 1000011000012

Portanto, a alternativa correta é a) 0000100001100001 – 0001001110100110 – 0111111110001100.

Comentários:

  • Realizar a conversão de hexadecimal para decimal é um tanto trabalhoso e fácil de errar.
  • Realizar a divisão sucessiva por 2 para converter de decimal para binário é ainda mais trabalhoso e fácil de errar.

Forma rápida de resolver

Como estamos interessados no valor binário da multiplicação, vamos realizar a multiplicação diretamente em binário. Dessa forma não precisamos converter os valores para decimal e nem converter o resultado para binário.

Podemos escolher a primeira ou a segunda entrada, a que for mais conveniente. Como vamos ter que realizar multiplicação binária é melhor escolher o valor com menos bits 1.

Vejamos as entradas do SISTEMA B. Ambas têm dois bits 1.

 58 = 0.1012 = 4 + 1 =  5
128 = 1.0102 = 8 + 2 = 10

Vejamos as entradas do SISTEMA A. A primeira entrada do sistema 1 tem menos bits 1.

1AD16 = 1.1010.11012 
1F716 = 1.1111.01112

Então vamos realizar a multiplicação das primeiras entradas.

Como 1AD16 é maior que 5, construímos a multiplicação a partir da soma de potências de dois multiplicadas por 1AD16. Como 5 = 4+1 = 22+20, temos que 1AD16×5 = (1AD16×1 + 1AD16×4). Veja abaixo como montamos a multiplicação a partir dessa soma.

1AD × 5
1.1010.1101 × (4 + 1)

    110101101 (1AD×1)
+ 11010110100 (1AD×4)
--------------
 100001100001 (1AD×5)

Portanto, a alternativa correta é a) 0000100001100001 – 0001001110100110 – 0111111110001100.

Comentários:

  • Esta solução pode parecer mais longa e complicada, mas boa parte dela é raciocínio.
  • Não precisamos converter para tudo para decimal só para depois converter para binário.
  • É muito mais rápido e confiável realizar a multiplicação diretamente em binário.

Mande seu problema e Compartilhe!

Como você resolveria este problema? Explique nos comentários!

Você tem um problema interessante? Envie para nós resolvermos! Veja como na página Problemas de Concursos.

Autor: Djones Boni

Engenheiro Eletricista e Eletrônico. Professor de Engenharia Eletrônica na UTFPR Toledo. Interesses: Sistemas eletrônicos embarcados e de tempo real.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *