Fundamentos de Arquiteturas de Computadores
Representação de
Números Inteiros com Sinal
Profa. Débora Christina Muchaluat Saade
debora@midiacom.uff.br
Departamento de Ciência da Computação - UFF
Fundamentos de Arquiteturas de Computadores
Roteiro
ü
Representação em Sinal e Magnitude
üRepresentação em Complemento
Fundamentos de Arquiteturas de Computadores
Números Inteiros com Sinal
ü Com n dígitos binários, podemos representar 2n
valores diferentes de inteiros sem sinal.
ü Exemplo utilizando-se 3 dígitos:
• 000 0 • 001 1 • 010 2 • 011 3 • 100 4 • 101 5 • 110 6 • 111 7
Fundamentos de Arquiteturas de Computadores
Representação em
Sinal e Magnitude
Fundamentos de Arquiteturas de Computadores
Representação em Sinal e Magnitude
ü O bit mais à esquerda é o sinal e os restantes
fornecem a magnitude do número (em binário).
ü Sinal:
• 0 para números positivos • 1 para números negativos
ü Exemplo com 8 bits:
• 00000101 = +5 • 10000101 = -5
ü Faixa de valores com n dígitos:
• -(2n-1-1) a + (2n-1-1)
ü Para n=4, teremos a faixa -7 a +7
Sinal Magnitude
n bits
n-1 bits 1 bit
Fundamentos de Arquiteturas de Computadores
Representação em Sinal e Magnitude
ü Porque não é utilizado pelos processadores ?
• duas representações para o zero (+0 e -0):
– por exemplo, 0000 e 1000.
ü processo de adição e subtração complicado
Sinal Magnitude
n bits
n-1 bits 1 bit
Fundamentos de Arquiteturas de Computadores
Representação em Sinal e Magnitude
ü Algoritmo de soma:
• Verificam-se os sinais dos números e efetua-se uma
comparação entre eles
• Se ambos possuem o mesmo sinal
– somam-se as magnitudes e o sinal do resultado é o mesmo das parcelas
• Se os números possuem sinais diferentes:
– identifica-se a maior das magnitudes e registra-se o seu sinal
• subtrai-se a magnitude menor da maior
• o sinal do resultado é igual ao sinal de maior
Fundamentos de Arquiteturas de Computadores
Exemplo de SM com 6 bits e mesmo sinal
+ 10
+ 15
+ 25
001010
+ 001111
011001
- 18
- 4
- 22
1
10010
+ 100100
1
10110
Base 10 Base 2Fundamentos de Arquiteturas de Computadores
Exemplo de SM com 6 bits e sinal diferente
+ 15
-
4
+ 11
001111
+ 100100
001011
- 18
+ 10
- 08
1
10010
+ 001010
101000
Base 10 Base 2Fundamentos de Arquiteturas de Computadores
Representação em Sinal e Magnitude
ü Algoritmo de subtração:
• Troca-se o sinal do subtraendo • Executa algoritmo de soma
ü Exemplo: • -18 - (+12)= -18 + (-12)
- 18
- 12
- 30
1
10010
+ 101100
1
11110
Base 10 Base 2Fundamentos de Arquiteturas de Computadores
Representação em Sinal e Magnitude
ü Processo de adição e subtração complicado
• Custo: 1 elemento para soma e outro para subtração • Velocidade: manipulação de sinal
Sinal Magnitude
n bits
n-1 bits 1 bit
Fundamentos de Arquiteturas de Computadores
Representação em
Complemento
Fundamentos de Arquiteturas de Computadores
Representação em Complemento
ü Como representar números negativos no sistema
decimal com 3 algarismos ?
|---|---|---|---|--|
000 250 499 750 998 999
ü Divide o sistema em 2, utiliza uma metade para
positivos e a outra para negativos.
|---|---| |---|---|--|
000 250 499 500 750 998 999
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 10
ü Como calcular o complemento?
• Positivos são os próprios números:
– 0 a +499 => 0 a 499
• Negativos são o complemento a 10 do número positivo
– -500 a -1 => 500 ao 999
ü Complemento a base = Bn-N onde n é o número de
algarismos que temos para representar um número.
• -500 = 103 - 500 = 1000 - 500 = 500 • -499 = 103 - 499 = 1000 - 499= 501 • -1 = 103 - 1 = 1000 - 1 = 999
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 10
ü Qual a vantagem ?
• Só precisamos somar números e resultado é sempre
representado corretamente. ü Exemplo de soma:
• -2 +3 = ?
• Complemento a 10 de -2 = 103 - 2 =998 • Complemento a 10 de +3 = 003
• somando 998+003=1001, descartando o 1 à esquerda,
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 10
ü Para subtrair: • A - B = A + (-B) ü Exemplo: • -3 -5 = -3 + (-5) • -3 = 103 - 3 =997 • -5 = 103 - 5 =995• 997 + 995 = 1992, retirando o 1 à esquerda temos o
resultado 992 que é negativo
• Para sabermos o valor fazemos o complemento • 103 - x = 992, x = 8
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Se existem n dígitos para representar o número:
• Se o número for positivo dn-1=0
• Se o número for negativo dn-1=1 e a representação é
2n-N onde N é a representação positiva
|---|---| |---|---|
000 010 011 100 101 111
positivos | negativos
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Com n dígitos para representar o número:
• Número 0 só tem 1 representação: 0...0
• Representação de números positivos: 1 a (2n-1-1) • Representação de números negativos: -1 a (-2n-1) • Faixa de valores: -2n-1 a (2n-1-1)
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Como representar um número em complemento a 2? ü Se o número for positivo
• dn-1=0 • magnitude do número é dn-2x2n-2 + d n-3x2n-3 + ... + d1x 21 + d0x20 ü Exemplo: • +7 utilizando-se 4 bits = 0111 • +27 utilizando-se 8 bits = 00011011
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Como representar um número em complemento a 2? ü Se o número for negativo
• C2(-N)=2n-N, onde N é a representação sem sinal da
magnitude do número negativo
• C2(-N)=2n-N=((2n-1)-N)+1 • Mas (2n-1)=011111..11 e
• (011111..11-N) é igual a inverter os bits de N
• Logo para achar a representação complemento a 2 de
números negativos, inverte-se o número na representação dele positiva e soma-se 1
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Como representar um número em complemento a 2? ü Se o número for negativo
• inverte-se o número na representação dele positiva e
soma-se 1
• Inverter significa trocar bits 0 e 1
ü Exemplo:
• Representação de -7 utilizando-se 4 bits:
– 7 em binário com 4 bits: 0111 – inverte(0111) = 1000
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Como representar um número em complemento a 2? ü Se o número for negativo
• inverte-se o número na representação dele positiva e
soma-se 1
• Inverter significa trocar bits 0 e 1
ü Exemplo:
• Representação de -27 com 8 bits
– 27 em binário com 8 bits: 00011011 – inverte(00011011) = 11100100
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Dado um número representado em complemento a 2
com n bits, o que ele está representando na base 10? • N=(dn-1dn-2 ... d1d0)
ü O bit mais significativo é o bit de sinal
• Se dn-1 é 0, o número é positivo dado por:
– N=dn-2x2n-2 + dn-3x2n-3 + ... + d1x 21 + d020
ü Exemplo:
• n=4 bits
• N=0111 => N = +710 • N=0100 => N = +410
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Dado um número representado em complemento a 2
com n bits, o que ele está representando na base 10? • N=(dn-1dn-2 ... d1d0)
ü O bit mais significativo é o bit de sinal
• Se dn-1 é 1, o número é negativo.
ü Como achar que número ele representa ?
• C2(C2(-N))=2n - (2n-N) = N
ü Logo para descobrir a magnitude de um número
negativo representado em complemento a 2, inverte-se o número na repreinverte-sentação dele inverte-sem sinal e soma-se 1.
Fundamentos de Arquiteturas de Computadores
Representação em Complemento a 2
ü Logo para descobrir a magnitude de um número
negativo representado em complemento a 2, inverte-se o número na repreinverte-sentação dele inverte-sem sinal e soma-se 1.
ü Ex.: O que representa 11100101 ?
• inv(11100101) = 00011010
• Soma 1 => 00011010 + 1 = 00011011 • Converte 00011011 para decimal => 27
• LEMBRAR DO SINAL – (número negativo) • Resultado -27
Fundamentos de Arquiteturas de Computadores
Soma e Subtração em Complemento a 2
ü Soma: N1 + N2
ü Subtração: N1 - N2 = N1 + (- N2) e joga fora o vai um ü Ex.: Somar +11 com +21
+ 11
+ 21
+ 32
00001011
+ 00010101
00100000
Base 10 C2Fundamentos de Arquiteturas de Computadores
Soma e Subtração em Complemento a 2
ü Soma: N1 + N2 e joga fora o vai um ü Ex.: Somar +21 com -11
+ 21
- 11
+ 10
00010101
+ 11110101
1
00001010
Joga fora último 1
Base 10 C2
(-11) para C2: 00001011 Inv=11110100 +1 =11110101
Fundamentos de Arquiteturas de Computadores
Soma e Subtração em Complemento a 2
ü Subtração: N1 - N2 = N1 + (- N2) e joga fora o vai um ü Ex.: Subtrair +21 de +11 = +11 – (+21) = +11 + (-21)
+ 11
- 21
- 10
00001011
+ 11101011
11110110
Base 10 C2 (-21) para C2: 00010101 Inv=11101010 +1 =11101011 11110110 Inv=00001001 +1 =00001010 (-10)Fundamentos de Arquiteturas de Computadores
Overflow
ü Overflow ocorre quando o número não pode ser
representado com o número de bits disponível.
ü Só ocorrerá overflow quando estivermos somando
Fundamentos de Arquiteturas de Computadores
Overflow
ü Se temos 3 bits para representar números em complemento a 2, podemos representar os seguintes inteiros com sinal:
• 011 +3 • 010 +2 • 001 +1 • 000 0 • 111 -1 • 110 -2 • 101 -3 • 100 -4
ü Menor número negativo = -23-1=-4 ü Maior número positivo = 23-1-1=+3
Fundamentos de Arquiteturas de Computadores
Overflow - Exemplos
ü Soma: N1 + N2 ü Primeiro caso: N1>0, N2>0:+ 2
+ 1
+ 3
00
010
+ 001
011
Base 10 C2 Ok!+ 3
+ 1
+ 4
01
011
+ 001
(-4) 100
OverflowFundamentos de Arquiteturas de Computadores
Overflow - Exemplos
ü Soma: N1 + N2 ü Segundo caso: N1<0, N2>0:+ 2
- 1
+ 1
11
010
+ 111
001
Base 10 C2 Ok!- 2
+ 1
- 1
00
110
+ 001
111
Ok!Fundamentos de Arquiteturas de Computadores
Overflow - Exemplos
ü Soma: N1 + N2 ü Terceiro caso: N1<0, N2<0:- 2
- 1
- 3
11
110
+ 111
101
Base 10 C2 Ok!- 1
- 4
- 5
10
111
+ 100
(+3) 011
OverflowFundamentos de Arquiteturas de Computadores