Ivair José de Souza

A notação Complemento de 2

É utilizada para  indicar um número com sinal.

MSB => Most Significant Bit (bit mais significativo) é o bit mais à esquerda do número binário.

O bit mais significativo (MSB) indica o sinal do número.

MSB = 0  indica que o número é positivo.

MSB = 1  indica que o número é negativo.

 

a) Representação do número decimal positivo  +100  (número com sinal)

Sinal

64

32

16

8

4

2

1

0

1

1

0

0

1

0

0

  MSB

b) Representação do número decimal negativo  – 39  em complemento  2 (número com sinal)

Sinal

64

32

16

8

4

2

1

1

1

0

1

1

0

0

1

 MSB

Para saber qual o valor do número decimal com sinal em complemento 2 faz-se o seguinte:

I  )  Para MSB = 0: Faz-se a operação normal isto é, soma-se os pesos dos bits 1.

Neste caso, (MSB=0), o método utilizado é o mesmo utilizado para sinal e magnitude

Exemplo

a) 0  1  1  0  0  1  0  0   =>  X = 64 + 32 + 4 = + 100  

II )   Para  MSB = 1:

Some os pesos dos bits 1 (sem o peso que teria o bit MSB).

Subtraia do resultado da soma o peso do bit MSB  . (Soma dos pesos para bit 1 peso do MSB)

Exemplo                                                                

b)  1  1  0  1  1  0  0  1   =>   X = (64 +16 +8 +1 – 128) temos 89 – 128 = -- 39 

O valor  128 é o peso que teria o bit de sinal (MSB). Como MSB = 1, o número X é negativo.

   

1) Abaixo, converta para decimal os números em complemento a 2.

    msb
a)  1  0  0  1  0  0  0  0 =   --112

    msb
b)   0  1  1  1  0  0  0  0 =   +112

   msb
c)   0   1  0  1  1  0  1  0 =   +90

   msb
d)  0   0  1  0  1 =   + 5

   msb
e)  1  1  0  1  1 =   -- 5    

    msb
f)  1   0  1  0  0 1 0 =   --
46 

   msb
g)  0  1  1  1  1  1  1  1 = +127  

   msb
h)  1  0  0  0  0  0  0  1 = --127  

   msb
i)  1  1  1  1  1  1  1  1 = --1  

Como converter um número decimal com sinal para a notação complemento 2

Os passos são os seguintes:

Se o número for negativo faz-se:

1º passo: converta para binário,  de maneira normal, o número como se não tivesse sinal

2º passo: Inverta todos os bits, trocando 1 por 0  e  0  por 1 para obter o complemento 1

3º passo: Some 1 ao número obtido no passo 2 para obter o complemento 2

 

Exemplos

a) Converta o número -- 9  para a forma complemento a 2  (número com sinal)

1º passo: Converta somente o número 9 (esqueça o sinal) para binário e obtém-se  0 0 0 0 1 0 0 1

2º passo: Inverta todos os bits e obtém-se 1 1 1 1 0  1 1 0  que é o complemento 1

3º passo: Somando  1  a  1 1 1 1  0 1 1 0   obtém-se  1 1 1 1 0 1 1 1  que é  -- 9 em complemento 2

 

Repetindo: número decimal = -- 9

1º passo: 0 0 0 0 1 0 0 1  ( 9 em binário)

2º passo: Após inverter todos os bits ter-se-á  1 1 1 1 0 1 1 0  (complemento 1)

3º passo: Somando 1  a  1 1 1 1 0 1 1 0 e obtém-se  1 1 1 1 0 1 1 1 =  -- 9                   

  = -- 9

b) Converta o número decimal -7  para a forma complemento 2 (número com sinal)

1º passo: 0 1 1 1   (7 em bináro)

2º passo: Após inverter todos os bits ter-se-á 1 0 0 0  (complemento 1)

3º passo: Somando 1  a  1 0 0 0   obtém-se  1 0 0 1 = -- 7                   

                                                                                   =  --7

 

c) Converta o número 1 1 0 1 na forma complemento 2  para decimal.

1º passo:  Inverta todos os bits e obtenha  0 0 1 0  (complemento 1) 

2º passo: Somando 1 a  0 0 1 0  tem-se   0 0 1 1 = 3 .  Como no número 1 1 0 1 (complemento 2)  MSB = 1 o número decimal 3 será negativo isto é, 1 1 0 1 = -- 3 

                                                                    

                                  msb
Ainda,  poderia fazer: 1  1  0  1 = 5 -- 8 = -- 3  

a) – 44 = .......................

1º passo: converta o valor 44 sem sinal para binário

44 = 0 0 1 0 1 1 0 0  (em binário)

2º passo:Inverta todos os bits isto é, faça o complemento 1

1 1 0 1 0 0 1 1

3º passo: Some 1 ao número em complemento 1 (passo 2) e terá o resultado final em complemento 2.

         1 1 0 1 0 0 1 1  +  1 =  1 1 0 1 0 1 0 0 

 Resposta:    -- 44 = 1 1 0 1 0 1 0 0  (complemento 2)

 

b) +51

Sendo o número positivo, basta converter o seu valor para binário

51 = 0 0 1 1 0 0 1 1

 c) Comprove que o numero  – 25  = 1 1 1 0 0 1 1 1  (complemento 2)

1) Abaixo, represente na forma complemento 2, os números decimais com sinal.

a) – 45 = .........................

b) + 45 = .........................

c) – 23 = .........................

d) + 56 = .........................



O número hexadecimal correspondente ao decimal em complemento 2 é obtido do seguinte modo:
O primeiro dígito é tomado da primeira coluna e o segundo dígito da primeira linha.
Por exemplo, para o número decimal  –36 tem-se na primeira coluna o dígito hexadecimal D e na primeira linha o dígito hexadecimal C.           Então,  --36 = DC = 1 1 0 1 1 1 0 0

Nota: Cada dígito hexadecimal corresponde a 4 bits em binário.
Decimal Hexadecimal Binário
(8 4 2 1)
0 0 0 0 0 0
1 1 0 0 0 1
2 2 0 0 1 0
3 3 0 0 1 1
4 4 0 1 0 0
5 5 0 1 0 1
6 6 0 1 1 0
7 7 0 1 1 1
8 8 1 0 0 0
9 9 1 0 0 1
10 A 1 0 1 0
11 B 1 0 1 1
12 C  1 1 0 0 
13 D 1 1 0 1
14 E 1 1 1 0
15 F  1 1 1 1 


 

Operações com números binários   (Aritmética binária)

Adição

Regras para a adição

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0  e vai 1

   

 


   

Regras para a multiplicação

0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1


Exemplos

Para multiplicador = 0 (zero), o produto parcial é sempre 0 (zero)

Para multiplicador = 1 (um), tem-se o produto parcial igual ao multiplicando.

A cada parcela multiplicada, desloca-se uma casa para a esquerda.

Soma-se os produtos parciais para se obter o produto final ou resultado final.


 
Subtração

Os microprocessadores não possuem circuitos para a subtração. Para efetuar a operação de subtração utilizam um somador e números em complemento 2.

 

Exemplo: para a operação de subtração  +9 – 5,  primeiro obtém-se o completo 2 de –5 e faz se a soma como mostrado abaixo. Observe também os exemplos  b  e  c.

 

 


 

Adição de números hexadecimais

No sistema de numeração hexadecimal ou de base 16 tem-se 16 dígitos que são:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Para somar em hexadecimal tem-se o seguinte procedimento:

Se a soma de dois dígitos é menor ou igual a 15 coloca-se o dígito correspondente à soma.

Se a soma é maior ou igual a 16, o dígito será o valor excedente a 16 e vai 1 para a próxima coluna. Veja os exemplos abaixo.

Seja somar F + D:

Como F = 15  e D = 13  tem-se   15 + 13 = 28

28 – 16 = 12  => coloca o dígito C  (C = 12)  e vai 1 para a próxima casa.

O resultado será 1C que corresponde a 28 em decimal. Então tem-se que  F + D = 1 C  

Exemplos