Para as operações abaixo, considerando números sinalizados com largura de 8 bits, converta os valores para binário antes de efetuar as operações. Verifique os resultados na base decimal.
-39+89=
Passo 1
O que o enunciado pede e o que é dado:
Fazer a operação -39 + 89 assumindo números sinalizados com largura de 8 bits.
Antes de somar, converter os valores para representação binária de 8 bits.
Verificar o resultado na base decimal.
Importante: considerar a representação de inteiros sinalizados típica em computação (forma que será usada na resolução).
Passo 2
Verificação rápida de validade dos operandos para 8 bits:
Em representação com 8 bits em complemento de dois, os inteiros representáveis vão de -128 até +127.
Os números dados -39 e 89 estão dentro desse intervalo, portanto podem ser representados em 8 bits sem overflow de representação.
Passo 3
Converter 89 para binário com 8 bits (número positivo):
Para escrever 89 em binário, decompor em potências de dois:89 = 64 + 16 + 8 + 1 = 2^{6} + 2^{4} + 2^{3} + 2^{0}.
Então a sequência de bits, do mais significativo (bit7) ao menos significativo (bit0), é89 = 01011001_{2}.(Aqui o bit7 é 0 porque o número é positivo e ocupamos 8 bits.)
Passo 4
Converter -39 para binário com 8 bits em complemento de dois:
Primeiro representamos +39 em binário:39 = 32 + 4 + 2 + 1 = 2^{5}+2^{2}+2^{1}+2^{0},logo39 = 00100111_{2}.
Para obter -39 em complemento de dois: inverte-se os bits de 00100111_{2} e soma-se 1.
Somar bit a bit com carry (mostrando passo a passo dos bits menos significativos para os mais significativos):
Soma coluna por coluna (LSB à MSB):\begin{array}{r@{\;}c@{\;}r@{\;}c@{\;}r@{\;}c@{\;}r@{\;}c@{\;}r@{\;}c@{\;}r@{\;}c@{\;}r@{\;}c@{\;}r} & & 1 &1 &0 &1 &1 &0 &0 &1\\[-2pt] + & & 0 &1 &0 &1 &1 &0 &0 &1\\hline & & 0 &0 &1 &1 &0 &0 &1 &0 \end{array}(O resultado escrito acima é o vetor de 8 bits resultante; um carry final saiu do bit mais significativo.)
Resultado em 8 bits (ignorando carry de saída) é00110010_{2}.
Observação sobre overflow: em complemento de dois a condição de overflow em soma é quando os dois operandos têm o mesmo sinal e o sinal do resultado é diferente. Aqui os operandos têm sinais opostos (-39 e +89), então overflow não pode ocorrer. O carry fora do octeto deve ser descartado na aritmética em complemento de dois.]
Passo 7
Converter o resultado binário 00110010_{2} para decimal para verificação:
Avaliar as potências de dois presentes:00110010_{2} = 2^{5} + 2^{4} + 2^{1} = 32 + 16 + 2 = 50.