Introdução à Computação
Jordana Sarmenghi Salamon
jssalamon@[Link]
jordanasalamon@[Link]
[Link]
Departamento de Informática
Universidade Federal do
Espírito Santo
Agenda
• Aritmética Binária
– Soma
– Subtração
– Multiplicação
– Divisão
• Representação com Sinal
– Sinal Magnitude
– Complemento de 1
– Complemento de 2
Adição Binária
• Regras:
•0+0=0
•0+1=1
•1+0=1
• 1 + 1 = 0 (e “vai 1” para o dígito de ordem superior)
• 1 + 1 + 1 = 1 (e “vai 1” para o dígito de ordem superior)
Adição Binária
• Exemplo:
• EX1: 101 + 011 EX2: 100 + 111
• ¹ 100
• + 111
• -----------
1011
Adição Binária
• Exercício:
• Realize as operações de soma abaixo:
• 1011 + 10111
• 11010 + 100111
• 1001 + 10110
• 100110 + 10001
• 101 + 110000
Adição Binária
• Exercício:
• Realize as operações de soma abaixo:
• 1011 + 10111 = 100010
• 11010 + 100111 = 1000001
• 1001 + 10110 = 11111
• 100110 + 10001 = 110111
• 101 + 110000 = 110101
Multiplicação Binária
• Regras:
• 0x0=0
• 0x1=0
• 1x0=0
• 1x1=1
• Mesmo método que o decimal: deslocamentos e adições;
• Número maior deve ser colocado acima do menor.
Multiplicação Binária
• Ex: 101 x 011
Multiplicação Binária
• Exercício:
• Realize as operações de multiplicação abaixo:
• 10 x 10
• 11 x 101
• 10 x 110
• 1000 x 111
• 1010 x 110
Multiplicação Binária
• Exercício:
• Realize as operações de multiplicação abaixo:
• 10 x 10 = 100
• 11 x 101 = 1111
• 10 x 110 = 1100
• 1000 x 111 = 111000
• 1010 x 110 = 111100
Subtração Binária
• Regras:
•0-0=0
• 0 - 1 = 1 (e “pede emprestado 1” para o dígito de ordem
superior)
•1-0=1
•1-1=0
Subtração Binária
• Ex: 101 - 011
Subtração Binária
• Exercício:
• Realize as operações de subtração abaixo:
• 1000 - 111
• 1010 – 110
• 1111 – 010
• 1001 – 011
• 1011 - 100
Subtração Binária
• Exercício:
• Realize as operações de subtração abaixo:
• 1000 – 111 = 0001
• 1010 – 110 = 0100
• 1111 – 010 = 1101
• 1001 – 011 = 0110
• 1011 – 100 = 0111
Divisão Binária
• Mesmo método que o decimal: deslocamentos e
subtrações.
• Ex:
Subtração Binária
• Exercício:
• Realize as operações de divisão abaixo:
• 1000 / 010
• 1010 / 101
• 1111 / 011
• 1001 / 011
• 1011 / 010
Subtração Binária
• Exercício:
• Realize as operações de divisão abaixo:
• 1000 / 010 = 100
• 1010 / 101 = 010
• 1111 / 011 = 101
• 1001 / 011 = 011
• 1011 / 010 = 101
Representação de números com sinal
• Sinal Magnitude
• A representação de sinal-e-magnitude ou sinal-
magnitude é a mais familiar a nós que utilizamos o
sistema numérico de base 10, usando um sinal positivo
ou negativo à esquerda do número para indicar se este
é positivo ou negativo.
Representação de números com sinal
• Sinal Magnitude
• Pode-se primeiramente abordar o problema de representar um
sinal de número através da atribuição de um bit de sinal para
representar o sinal: define-se esse bit (frequentemente o bit mais
significativo) para 0 para representar um número positivo, e
define-se como um para representar um número negativo. Os
bits restantes do número representam a magnitude (ou o valor
absoluto).
Representação de números com sinal
• Sinal Magnitude
• Assim, em um byte com 8 bits, são utilizados 7 bits para
representar o valor e um bit para representar o sinal. Neste caso,
o valor pode variar de 0000000 (0) a 1111111 (127). Assim, pode-
se representar números de −12710 a +12710, uma vez que você
adicione o bit de sinal (o oitavo bit). Uma consequência desta
representação é que existem duas maneiras de representar o
zero, 00000000 (0) e 10000000 (-0).
Representação de números com sinal
• Sinal Magnitude
Representação de números com sinal
•Sinal Magnitude
• Algoritmo de soma (números com sinal):
–Sinais diferentes
•Encontra número com maior magnitude
•Subtrai maior do menor
•Atribui o resultado sinal do número de maior magnitude
• O bit de sinal não é considerado nas operações!
Representação de números com sinal
•Sinal Magnitude
• Algoritmo de soma (números com sinal):
– Sinais iguais
•Soma e atribui sinal dos operandos
•Atenção deve ser dada ao estouro de magnitude
Representação de números com sinal
• Complemento a base
• Em computadores a subtração em binário é feita por um
artifício: o "Método do Complemento a Base“;
• Consiste em encontrar o complemento do número em
relação a base e depois somar os números.
Representação de números com sinal
• Representação de números em complemento
• Complemento é a diferença entre o maior algarismo
possível na base e cada algarismo do número;
• Através da representação em complemento a subtração
entre dois números pode ser substituída pela sua soma
em complemento.
Representação de números com sinal
• Representação de números positivos em Complemento
• A representação de números positivos em complemento
não tem qualquer alteração, isto é, é idêntica à
representação em sinal e magnitude.
Representação de números com sinal
• Representação de números negativos em
complemento a (base -1)
• A representação dos números inteiros negativos é
obtida efetuando-se: maior algarismo possível na base
menos cada algarismo do número. Fica mais fácil
entender através de exemplos…
Representação de números com sinal
• Representação de números negativos em
complemento a (base -1)
• Ex 1: Calcular o complemento a (base - 1) do número -297
• Se a base é 10, então 10 - 1 = 9 e o complemento a (base -1) será
complemento a 9.
Representação de números com sinal
• Representação de números negativos em
complemento a (base -1)
• Ex 2: Calcular o complemento a (base - 1) do número -3A7E
• Se a base é 16, então 16 - 1 = 15 = F e o complemento a (base -1)
será complemento a F.
Representação de números com sinal
• Representação de números negativos em
complemento a (base -1)
• Exercício:
• Calcule o complemento à base -1 dos números abaixo:
• -50(8)
• -29C(16)
• -33(10)
Representação de números com sinal
• Representação de números negativos em
complemento a (base -1)
• Exercício:
• Calcule o complemento à base -1 dos números abaixo:
• -50(8) = 77 – 50 = 27(8)
• -29C(16) = FFF – 29C = D63(16)
• -33(10) = 99 – 33 = 66(10)
Representação de números com sinal
• Caso particular: números na base 2 -> complemento a
(base -1) = complemento a 1
• Para se obter o complemento a 1 de um número
binário, devemos subtrair cada algarismo de 1.
• Uma particularidade dos números binários é que, para
efetuar esta operação, basta inverter todos os bits.
Representação de números com sinal
• Caso particular: números na base 2 -> complemento a
(base -1) = complemento a 1
• Ex: Calcular o complemento a (base - 1) do número 0011.
• Se a base é 2, então 2 - 1 = 1 e o complemento a (base -1)
será complemento a 1 (C1).
Representação de números com sinal
• Caso particular: números na base 2 -> complemento a
(base -1) = complemento a 1
• Como na representação sinal de magnitude, o
"complemento para um" tem duas representações para
o 0: 00000000 (+0) e 10000000 (-0). Na prática, este
zero negativo, quando detectado é transformado em
zero normal.
Representação de números com sinal
• Caso particular: números na base 2 -> complemento a
(base -1) = complemento a 1
Representação de números com sinal
• Caso particular: números na base 2 -> complemento a
(base -1) = complemento a 1
Representação de números com sinal
• Caso particular: números na base 2 -> complemento a
(base -1) = complemento a 1
• Exercício:
• Calcule o complemento a 1 dos números abaixo:
• 101011
• 0101011
• 011010
Representação de números com sinal
• Caso particular: números na base 2 -> complemento a
(base -1) = complemento a 1
• Exercício:
• Calcule o complemento a 1 dos números abaixo:
• 101011 = 010100 (C1)
• 0101011 = 1010100 (C1)
• 011010 = 100101 (C1)
Representação de números com sinal
• Aritmética em complemento a (base -1)
• A subtração (ou soma de um número positivo com um
número negativo) se transforma, nesta representação,
em uma soma em complemento, isto é, a soma dos
complementos do número negativo com o número
positivo;
Representação de números com sinal
• Aritmética em complemento a (base -1)
• Portanto, uma subtração pode ser realizada
simplesmente através da soma dos números
“complementados”;
• Se o número é positivo, mantenha-o; se o número é
negativo, complemente-o; e aí, é só somar.
• No entanto, continuamos com duas representações
para o zero.
Representação de números com sinal
• Representação de números negativos em
complemento a base
• A representação dos números inteiros negativos em
complemento a base é obtida subtraindo-se da base
cada algarismo do número. Por ex., base 10 com 3
dígitos: 1000 - x
Representação de números com sinal
• Caso particular: base 2 (complemento a 2)
• Subtrair cada algarismo de 1 (complemento a 1) e
depois somar 1 ao resultado.
• Assim, conforme mencionado anteriormente, para obter
o C1 de um número binário, basta inverter todos os bits.
• E para obter o C2 de um número obtemos primeiro o C1
(invertendo os bits) e depois somamos 1 ao resultado.
Representação de números com sinal
• Caso particular: base 2 (complemento a 2)
• Ex: calcular o complemento a 2 (C2) de um número
binário 0011 com 4 dígitos:
Representação de números com sinal
• Caso particular: base 2 (complemento a 2)
Representação de números com sinal
• Caso particular: base 2 (complemento a 2)
• Os números são escritos da seguinte forma:
• Positivos: Sua magnitude é representada na sua forma
binária direta, e um bit de sinal 0 é colocado na frente
do MSB.
• Exemplos: 0001 (+1), 0100 (+4) e 0111 (+7)
Representação de números com sinal
• Caso particular: base 2 (complemento a 2)
• Negativos: Sua magnitude é representada na forma de
complemento a 2.
• O complemento a 2 já leva o sinal negativo em
consideração!
• Em C2 não há duas representações para o valor 0 e
consequentemente abriu-se lugar para mais uma
representação.
Representação de números com sinal
• As vantagens do uso do complemento de 2 é que existe
somente um zero e que as regras para soma e
subtração são as mesmas.
• A desvantagem é o fato de ser um onde o número de
representações negativas é maior que o número de
representações positivas. Por exemplo, com oito bits em
complemento para 2 podemos representar os números
decimais de -128 a +127.
Representação de números com sinal
• Caso particular: base 2 (complemento a 2)
Representação de números com sinal
• Aritmética de complemento a base
• Na aritmética em complemento a base, basta somar os
números, sendo que um número negativo será
representado por seu complemento a base.
Representação de números com sinal
• Aritmética em Complemento a 2
•A adição de dois números nesse sistema de
representação segue duas regras:
• Some os dois números e observe se ocorre o carry (vai
1) sobre o bit de sinal e se ocorre o carry após o bit de
sinal.
Representação de números com sinal
• Aritmética em Complemento a 2
• Se ocorrer um e somente um dos dois carry, então
houve estouro; caso contrário o resultado da soma está
dentro do campo de definição.
• Obs: A subtração em complemento de 2 é realizada
através da soma de n°s negativos.
Representação de números com sinal
• Aritmética em Complemento a 2
• Exemplos para n = 4 bits
•
Representação de números com sinal
• Aritmética em Complemento a 2
Representação de números com sinal
• Aritmética em Complemento a 2
• Em qualquer sistema de complemento de dois,
existe sempre um limite para o tamanho dos
números a serem representados.
Representação de números com sinal
• Aritmética em Complemento a 2
• Exemplo: quando usamos complemento de dois
com padrões de quatro bits (um para o sinal), ao
valor 9 não está associado padrão algum; por
isso não conseguimos obter uma resposta certa
para a soma 5 + 4, o resultado apareceria como -
7.
Representação de números com sinal
• Subtração = Somar usando representação em C2
• Ex: 5 - 3 = 2 (utilização de 4 bits)
• O bit mais significativo (decorrente do último “vai um”)
deve ser desprezado pois houve carry sobre o bit de
sinal e após ele.
Representação de números com sinal
• Aritmética em Complemento a 2
• Para saber se o resultado está correto (se a soma em
binário equivale à soma em decimal), fazemos a soma
usando o complemento, depois pegamos o resultado e
invertemos (exceto o bit de sinal) e somamos 1. O valor
resultante é então convertido para decimal com sinal e
magnitude e pode ser conferido.
Representação de números com sinal
• Aritmética em Complemento a 2
• Exemplo: Somar 1100 e 1101
• Os números são negativos e estão representados em C2. Para
sabermos seu valor decimal, precisamos convertê-los para a
representação em sinal-magnitude. Neste caso, teremos que
inverter os bits da magnitude e somar 1 ao resultado:
• 1100 -> 1011 -> 1011 + 1 = 1100 = -4(10)
• 1101 -> 1010 -> 1010 + 1 = 1011 = -3(10)
Representação de números com sinal
• Aritmética em Complemento a 2
• Exemplo: Somar 1100 e 1101
O resultado está correto pois houve
• 11
“vai 1” para o bit de sinal e para
• 1100 depois dele
• +1101
• -------
• 1001
• O resultado é um valor negativo representado em C2. Passando para Sinal-Magnitude:
1001 -> 1110 -> 1110 + 1 = 1111 = -7(10)
• Logo, a operação está correta.
Representação de números com sinal
• Aritmética em Complemento a 2
• Exercício: Realize as seguintes operações em
complemento de 2 ocupando 6 bits:
• a) 05 + 12
• b) 13 - 09
• c) 17 - 31
• d) -12 – 08
• e) -26 + 10
Representação de números com sinal
• Aritmética em Complemento a 2
• Exercício: Realize as seguintes operações em
complemento de 2 ocupando 6 bits:
• a) 05 + 12 = 000101 + 001100 = 010001 = +17
• b) 13 - 09 = 001101 + 010111(C2) = 000100 = +4
Representação de números com sinal
• Aritmética em Complemento a 2
• c) 17 - 31 = 010001 + 100001(C2) = 110010; inverte
desconsiderando o bit de sinal e soma 1 = 101110 = -14
• d) -12 – 08 = 110100(C2) + 111000(C2) = 101100; inverte
desconsiderando o bit de sinal e soma 1 = 110100 = -20
• e) -26 + 10 = 10 - 26 = 001010 + 100110(C2) = inverte
desconsiderando o bit de sinal e soma 1 = 110000 = -16
Representação de números com sinal
• Overflow
• Quando uma soma de dois números de n algarismos
resulta em um valor com n+1 algarismos, ocorre o
overflow.
• Se a soma foi realizada em sinal e magnitude, a
ocorrência de overflow é detectada pelo bit “vai um”
após o último bit de magnitude à esquerda.
Representação de números com sinal
• Overflow
• Porém, na soma por complemento, os algoritmos
acarretam a modificação completa do resultado se
ocorrer overflow. Isso ocorre porque as somas em
complemento incluem também a soma dos bits de sinal;
o “vai um” para o bit de sinal, somado a eles, modifica
seu valor, alterando a natureza do número.
Representação de números com sinal
• Resumo da Aritmética em Complemento a 2
• 1) As operações de soma são realizadas normalmente em sinal-
magnitude;
• 2) As operações de subtração são realizadas como soma de
complemento;
• 3) Se o resultado é um valor positivo, então o valor decimal
correspondente da magnitude é obtido pela conversão da base 2 para a
base 10;
• 4) Se o resultado é um valor negativo, deve-se primeiro converter esse
valor para sinal-magnitude (inverter os bits da magnitude e somar 1), e
depois converter da base 2 para a base 10.
Introdução à Computação
Jordana Sarmenghi Salamon
jssalamon@[Link]
jordanasalamon@[Link]
[Link]
Departamento de Informática
Universidade Federal do
Espírito Santo