Skip to content

Latest commit

 

History

History
59 lines (42 loc) · 1.54 KB

File metadata and controls

59 lines (42 loc) · 1.54 KB

Problema

6 - Indica o que é mostrado no ecrã pelo seguinte código C#. Justifica a tua resposta.

ulong a = 0xABCD;
Console.WriteLine($"{a & 0x000F}");

Soluções

Solução 1

0xABCD -> 1010 1011 1100 1101
0x000F -> 0000 0000 0000 1111
        & -------------------
          0000 0000 0000 1101  = 0x000D 

0x163 + 0x162 + 0x161 + Dx160 = 0 + 0 + 0 + 13 = 13

O output será 13, tendo em conta que, $ interpola a string mostrando o valor que está dentro das chavetas {} e dentro destas encontra-se um cálculo entre o valores de a e 0x000F com o operador & AND.

Por Sara Gama.

Solução 2

Na 1ª linha é atribuído o valor 0xABCD à variável a. Na 2ª linha temos um Console.WriteLine com uma string interpolada ($"{}" mostra o valor que está dentro das chavetas), na qual temos uma operação & (AND) entre a variável a e 0x000F:

0xABCD -> 1010 1011 1100 1101
0x000F -> 0000 0000 0000 1111
        & -------------------
          0000 0000 0000 1101 -> 0x000D

Para converter um valor hexadecimal em decimal, basta multiplicar cada dígito hexadecimal por 16 elevado à posição desse mesmo dígito, e somar todos os valores resultantes, da seguinte forma:

0x163 + 0x162 + 0x161 + Dx160

= 0 + 0 + 0 + 13 x 1

= 13

Desta forma, o valor de a após o código ser executado é de 13 em decimal.

Por Diana Nóia