Skip to content

Latest commit

 

History

History
93 lines (69 loc) · 2.53 KB

File metadata and controls

93 lines (69 loc) · 2.53 KB

Problema

2 - Qual o valor hexadecimal da variável a após a execução do seguinte código C#? E o valor em binário? Justifica a tua resposta.

ulong a = 0xFEDE;
a |= 0x0F0F;

Soluções

Solução 1

0xFEDE -> 1111 1110 1101 1110
0x0F0F -> 0000 1111 0000 1111
       | --------------------
          1111 1111 1101 1111  = 0xFFDF

Após passar os valores de hexadecimal para binário, aplica-se o operador or -> |, como é pedido, obtendo-se o valor de a após uma conversão final para hexadecimal (sendo o valor final 0xFFDF ).

Por Sara Gama.

Solução 2

Na primeira linha de código a variável a está declarada como ulong com o valor 0xFEDE. Na segunda linha temos a operação | bit a bit com o valor 0x0F0F que dará um novo valor à variável a. Primeiro faz-se a conversão dos dois valores hexadecimais para binário.

	Operação (or) bit a bit condições:
	1 | 1 = 1
	1 | 0 = 1
	0 | 0 = 0
	0 | 1 = 1

0xFEDE -> 1111 1110 1101 1110
0x0F0F -> 0000 1111 0000 1111
        | -------------------
          1111 1111 1101 1111

O valor atribuído à variável a em binário é 1111 1111 1101 1111. Para converter o número binário em hexadecimal, basta observar os quatro primeiros dígitos do número binário, ou seja, com o conjunto de 4 dígitos binários consegue-se representar os números até 15 em decimal. Sabendo que em hexadecimal os números vão de 1 a F faz-se a seguinte conversão:

1111 = 15 decimal = F hexadecimal
1111 = F hexadecimal
1101 = 13 decimal = D hexadecimal
1111 = F hexadecimal

Hexdec	-> 0xFFDF

O valor de a em hexadecimal após a execução do código será 0xFFDF.

Por Ana Jesus.

Solução 3

O valor atribuído à variável a na 1ª linha é 0xFEDE.

Na 2ª linha de código está a ser realizada uma operação | (OR) entre a (cujo valor é 0xFEDE) e 0x0F0F.

Podemos realizar a operação mais facilmente convertendo ambos os valores em binário, e posteriormente convertendo o resultado de volta para hexadecimal, da seguinte forma:

0xFEDE -> 1111 1110 1101 1110
0x0F0F -> 0000 1111 0000 1111
        |--------------------
          1111 1111 1101 1111 -> 0xFFDF

Uma vez que o resultado é guardado de volta na variável a , o valor desta é 0xFFDF em hexadecimal.

Como realizámos a operação usando os valores em binário, sabemos que o valor em binário é 0b1111_1111_0000_1111.

Por Diana Nóia