Considere o importante trabalho com os bits. Descreva que tipo de operação está sendo realizada e informe o resultado obtido.
0 \mathrm{~b} 00111100 \& \sim(0 \mathrm{~b} 00111100)

Passo 1

O enunciado dá a expressão
\text{0b}00111100 \mathbin{\&} \sim(\text{0b}00111100)
e pede duas coisas: descrever que tipo de operação é essa e informar o resultado obtido. Aqui os dados fornecidos são o literal binário \text{0b}00111100 (oito bits) e os operadores bitwise \mathbin{\&} (AND bit a bit) e \sim (NOT bit a bit).

Passo 2

Explicando de forma bem didática os operadores envolvidos:
  • O operador AND bit a bit ( \mathbin{\&}) age posição a posição nos bits: dada uma posição com bits a e b, o resultado a \mathbin{\&} b vale 1 somente quando a=1 e b=1; caso contrário vale 0.
    • Tabela verdade do AND: \begin{array}{c|c|c} a & b & a\mathbin{\&}b\\hline 0 & 0 & 0\\\\ 0 & 1 & 0\\\\ 1 & 0 & 0\\\\ 1 & 1 & 1 \end{array}
  • O operador NOT bit a bit ( \sim) simplesmente inverte cada bit: \sim 0 = 1 e \sim 1 = 0. Quando trabalhar com um literal escrito com 8 bits (como aqui), é natural assumir complemento sobre esses 8 bits (ou seja, inverter cada um dos 8 bits).

Passo 3

Assumindo representação em 8 bits (porque o literal tem 8 dígitos), calculemos o complemento bit a bit de \text{0b}00111100. Invertendo cada bit:
\text{0b}00111100 \xrightarrow{\sim} \text{0b}11000011.
(Resumo: todos os 0 viraram 1 e os 1 viraram 0.)

Passo 4

Agora fazemos o AND bit a bit entre os dois padrões de 8 bits alinhados:
\begin{array}{r} \text{0b}\,00111100\\\ \mathbin{\&}\\ \text{0b}\,11000011\\hline \text{0b}\,00000000 \end{array}
Explicando posição a posição: em cada coluna um dos dois bits é sempre 0 (porque em cada posição um deles é o complemento do outro), logo cada AND dá 0. Portanto o resultado é \text{0b}00000000.

Passo 5

Interpretação geral e prova curta (útil para a prova): para qualquer padrão de bits x vale
x \mathbin{\&} \sim x = 0,
porque em cada posição de bit x_i temos ou x_i=0 (então 0\mathbin{\&}1=0) ou x_i=1 (então 1\mathbin{\&}0=0). Logo todos os bits do resultado são zero. Isso independe do tamanho da palavra, desde que a operação \sim seja o complemento bit a bit sobre a mesma largura considerada.

Passo 6

Converter para decimal só para referência:
\text{0b}\,00111100 = 60_{10},\qquad \text{0b}\,00000000 = 0_{10}.

Resposta

Operação: AND bit a bit entre \text{0b}00111100 e o seu complemento bit a bit \sim(\text{0b}00111100).
Resultado: \text{0b}00000000 = 0

Exercícios relacionados