Aritmética Digital 1

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 17

ARITMÉTICA DIGITAL:

OPERAÇÕES E CIRCUITOS
ADIÇÃO BINÁRIA
• Em geral, os mesmos passos da adição de números decimais são seguidos em uma
adição binária. Entretanto, apenas quatro casos podem ocorrer na soma de dois dígitos
binários (bits) em qualquer posição. Esses casos são:

• Esse último caso ocorre quando dois bits de uma determinada posição estão em nível 1 e
há um carry da posição anterior. Exemplos:

• Quando mais de dois números devem ser somados, adicionam-se os dois primeiros e o
resultado é acrescentado ao terceiro número, e assim por diante. Essa característica não
representa uma séria desvantagem, visto que os computadores modernos podem
realizar uma operação de adição em alguns nanossegundos.
• A adição é a operação aritmética mais importante nos sistemas digitais. Como veremos,
subtração, multiplicação e divisão, do modo como são realizadas na maioria dos
modernos computadores e calculadoras, na realidade usam apenas a adição em suas
operações básicas.
SUBTRAÇÃO BINÁRIA
• Da mesma maneira, a subtração binária é realizada como a subtração de números
decimais. Existem apenas quatro situações possíveis para se lidar quando subtrair um bit
de outro em qualquer posição de um número binário. Elas são:

• O último caso ilustra a necessidade de tomar emprestado da próxima coluna para a


esquerda quando subtrair 1 de 0. Aqui vão alguns exemplos da subtração de dois
números binários (com equivalentes decimais entre parênteses):
SUBTRAÇÃO BINÁRIA
REPRESENTAÇÃO DE NÚMEROS COM SINAL
• Nos computadores digitais, os números binários são representados por um conjunto
de dispositivos de armazenamento binário (ou seja, flip-flops). Cada dispositivo
representa um bit. Por exemplo, um registrador de seis bits pode armazenar
números binários na faixa de 000000 a 111111 (de 0 a 63 em decimal).
• Como a maioria dos computadores e das calculadoras digitais efetua operações
tanto com números negativos quanto positivos, é necessário representar, de alguma
maneira, o sinal do número (+ ou –).
• O bit de sinal é usado para indicar a natureza positiva (bit “0”) ou negativa (bit “1”)
do número binário armazenado. Os bits de magnitude correspondem ao equivalente
binário direto do valor decimal representado. Essa representação é denominada
sistema sinal-magnitude para números binários com sinal.
REPRESENTAÇÃO DE NÚMEROS COM SINAL
• Embora o sistema sinal-magnitude seja uma representação direta, os computadores e as
calculadoras normalmente não o utilizam, porque a implementação do circuito é mais
complexa que em outros sistemas.
• O sistema mais usado para representar números binários com sinal é o sistema de
complemento de 2. Antes de saber como ele é, temos de determinar os complementos
de 1 e de 2 de um número binário.
• Forma do complemento de 1: O complemento de 1 de um número binário é obtido
substituindo cada 0 por um 1 e cada 1 por um 0.

• Assim, dizemos que o complemento de 1 de 101101 é 010010.


REPRESENTAÇÃO DE NÚMEROS COM SINAL
• Forma do complemento de 2: O complemento de 2 de um número binário é obtido
tomando o complemento de 1 do número e somando 1 na posição do bit menos
significativo. Esse processo é ilustrado a seguir para 1011012 = 4510.

• Assim, dizemos que 010011 é a representação em complemento de 2 de 101101.


REPRESENTAÇÃO DE NÚMEROS COM SINAL USANDO
COMPLEMENTO DE 2
• O sistema de complemento de 2 para representação de números com sinal funciona da
seguinte maneira:
• Se o número for positivo, a magnitude é representada na forma binária direta, e um bit de sinal 0 é
colocado em frente ao bit mais significativo (most significant bit — MSB).
• Se o número for negativo, a magnitude é representada na forma do complemento de 2, e um bit de
sinal 1 é colocado em frente ao MSB.
• O sistema de complemento de 2 é usado para representar números com sinal porque,
conforme veremos, permite realizar a operação de subtração efetuando, na verdade,
uma adição. Isso é importante porque um computador digital pode usar o mesmo
circuito tanto na adição quanto na subtração, desse modo, poupando hardware.
REPRESENTAÇÃO DE NÚMEROS COM SINAL
USANDO COMPLEMENTO DE 2
• Represente cada um dos seguintes números decimais com sinal como um número binário com
sinal no sistema de complemento de 2. Use um total de 5 bits incluindo o bit de sinal. (a) +13 (b) –
9 (c) +3 (d)
• (a) Como o número é positivo, a magnitude (13) é representada na forma direta, ou seja, 13 =
11012. Anexando um bit de sinal 0, temos

• (b) Para determinar a representação para –9, começamos com a representação para +9, incluindo
o bit de sinal, e calculamos o complemento de 2, a fim de obter a representação para –9.

• (c) O valor decimal 3 pode ser representado em binário usando apenas dois bits. Entretanto, o
enunciado do problema requer magnitude de quatro bits precedida de um bit de sinal. Assim,
temos +310 = 00011. Em muitas situações, o número de bits é fixado pelo tamanho do registrador
que armazenará os números binários; portanto, zeros devem ser acrescentados para preencher o
número de posições de bits requerido.
REPRESENTAÇÃO DE NÚMEROS COM SINAL USANDO
COMPLEMENTO DE 2: EXTENSÃO DE SINAL
• A maioria dos sistemas digitais atuais armazena números em registradores medidos em
múltiplos pares de quatro bits: 4, 8, 12, 16, 32 ou 64 bits. Em um sistema que armazena
números de oito bits, sete bits representam a magnitude, e o MSB, o sinal. Se
precisamos armazenar um número positivo de cinco bits em um registrador de oito bits,
faz sentido simplesmente acrescentar zeros à frente. O MSB (bit do sinal) ainda é 0,
indicando um valor positivo.

• O que acontece quando tentamos armazenar números negativos em um registrador de


oito bits? Na seção anterior, descobrimos que a representação binária de cinco bits em
complemento de 2 para –9 é 10111.
• O modo correto de ampliar um número negativo é acrescentar 1s à frente. Assim, o
valor armazenado para 9 negativo é
REPRESENTAÇÃO DE NÚMEROS COM SINAL USANDO
COMPLEMENTO DE 2: NEGAÇÃO
• Negação é a operação de conversão de um número positivo em seu equivalente negativo ou de um
número negativo em seu equivalente positivo. Quando os números binários com sinal estão
representados no sistema de complemento de 2, a negação é obtida pela operação do complemento
de 2. A operação de negação altera o número para seu equivalente de sinal oposto.

• Cada um dos seguintes números é um número binário com sinal de 5 bits no sistema do complemento
de 2. Determine o valor decimal em cada caso: (a) 01100 (b) 11010 (c) 10001
• (a) O bit de sinal é 0, de modo que o número é positivo e os outros quatro bits representam a
magnitude direta do número. Ou seja, 11002 = 1210. Assim, o número decimal é +12.
(b) O bit de sinal de 11010 é 1; portanto, (c) Seguindo o mesmo procedimento
sabemos que o número é negativo, mas não realizado em (b). Assim, 10001 = –15
podemos dizer qual é sua magnitude.
Temos de determinar a magnitude fazendo
a negação (complemento de 2) do número
para convertê-lo em seu equivalente
positivo. Visto que o resultado da operação
de negação é 00110 = +6, o número original
11010 tem de ser equivalente a –6.
REPRESENTAÇÃO DE NÚMEROS COM SINAL
USANDO COMPLEMENTO DE 2
• Caso especial na representação de complemento
de 2:
• Sempre que um número com sinal tiver um 1 no bit de sinal e
todos os bits de magnitude forem 0, seu equivalente decimal
será –2N, em que N é o número de bits da magnitude. Por
exemplo: 1000 = –23 = –8;10000 = –24 = –16;100000 = –25 = –32
• Observe que, nesse caso, tomar o complemento de 2 produz o
valor com o qual começamos, porque estamos no limite
negativo do intervalo de números que podem ser representados
com esses bits. Se estendermos o sinal desses números
especiais, o procedimento de negação normal funcionará. Por
exemplo, estendendo o número 1000 (–8) para 11000 (8
negativo de cinco bits) e tomando seu complemento de 2,
obtemos 01000 (8), que é a magnitude do número negativo.
• Assim, diz-se que a faixa completa de valores que pode ser
representada no sistema de complemento de 2 com N bits de
magnitude é –2Na +(2N – 1). Existe um total de 2N+1 diferentes
valores, incluindo o zero.
REPRESENTAÇÃO DE NÚMEROS COM SINAL
USANDO COMPLEMENTO DE 2
Qual é a faixa de valores de números decimais sem sinal que pode ser representada com um byte?
Solução: Lembre-se de que um byte corresponde a oito bits. Como estamos interessados, nesse caso, em
números sem sinal, não há bit de sinal; assim, os oito bits são usados para representar a magnitude. Portanto,
os valores estão na faixa de 000000002 = 010 a 111111112 = 25510 .Isso corresponde a um total de 256 valores
diferentes, que poderíamos determinar como 28 = 256.
Qual é a faixa de valores de números decimais com sinal que pode ser representada com um byte?
Solução: Visto que o MSB é usado como bit de sinal, existem sete bits para a magnitude. O maior valor
negativo é 100000002 = –27 = –12810 E o maior valor positivo 011111112 = +27 – 1 = +12710 . Assim, a faixa é
de –128 a +127, em um total de 256 valores diferentes, incluindo o zero. Em outras palavras, visto que
existem sete bits de magnitude (N = 7), então existem 2N+1 = 28 = 256 valores diferentes.
ADIÇÃO NO SISTEMA DE COMPLEMENTO DE 2
• Nos diversos casos a serem considerados, é importante observar que sobre o bit de
sinal de cada número é realizada a mesma operação que é feita sobre os bits de
magnitude.
Caso I: Dois números positivos. A adição de dois números positivos é feita diretamente.

Observe que os bits de sinal da 1a parcela e da 2a parcela são ambos 0, e o bit de sinal da soma é 0,
indicando que é positiva. Observe também que a primeira e a segunda parcelas têm a mesma quantidade
de bits. Isso sempre tem de ser feito no sistema do complemento de 2.
Caso II: Um número positivo e outro menor e negativo. Considere a adição de +9 com –4. Lembre-se de que
–4 será representado na forma do complemento de 2. Assim, +4 (00100) tem de ser convertido para –4
(11100).
Nesse caso, o bit de sinal da segunda parcela é 1.
Observe que ele também participa do processo
de soma. Na verdade, um carry é gerado na
última posição da soma. Esse carry sempre é
desconsiderado; logo, a soma final é 00101,
equivalente a +5.
ADIÇÃO NO SISTEMA DE COMPLEMENTO DE 2
Caso III: Um número positivo e outro maior e negativo. Considere a adição
de –9 com +4:
Aqui, a soma tem um bit de sinal 1, indicando um número negativo. Como
a soma é negativa, está na forma do complemento de 2; logo, os últimos
quatro bits, 1011, de fato representam o complemento de 2 da soma. Para
obter a magnitude direta da soma, temos de fazer a negação
(complemento de 2) de 11011; o resultado é 00101 = +5. Assim, 11011
representa –5.

Caso IV: Dois números negativos


O resultado final é novamente negativo e está na forma do
complemento de 2 com um bit de sinal 1. Efetuando a negação
(complemento de 2), temos como resultado 01101 = +13.

Caso V: Números iguais e de sinais opostos

Obviamente, o resultado é +0, conforme o esperado.


SUBTRAÇÃO NO SISTEMA DE COMPLEMENTO DE 2
• A operação de subtração que usa o sistema de complemento de 2 na verdade envolve a operação de soma
e não é diferente dos diversos casos de adição tratados na Seção anterior. Ao efetuar a subtração de um
número binário (subtraendo) de outro binário (minuendo), use os seguintes procedimentos:
• 1. Faça a operação de negação do subtraendo. Isso mudará o subtraendo para o valor equivalente com
sinal oposto.
• 2. Adicione esse número obtido ao minuendo. O resultado dessa adição representa a diferença entre o
subtraendo e o minuendo.
• Mais uma vez, como em todas as operações aritméticas em complemento de 2, é necessário que os dois
números tenham o mesmo número de bits em suas representações. Vamos considerar o caso em que +4 é
subtraído de +9.
Quando o subtraendo é representado em
complemento de 2, na verdade torna-se igual a –4.
Assim, estamos somando –4 com +9, que é o
mesmo que subtrair +4 de +9.

• Vejamos outro exemplo que mostra +9 sendo subtraído de –4:

Ao fazer a operação de negação do


subtraendo (+9), obtemos 10111 (–9),
que somamos ao minuendo (–4).
SUBTRAÇÃO NO SISTEMA DE COMPLEMENTO
DE 2:OVERFLOW ARITMÉTICO
• Em todos esses casos, a magnitude da resposta era suficientemente pequena para ser
representada com quatro bits. Vamos analisar a adição de +9 com +8.

• A resposta tem um bit de sinal que indica resultado negativo, que, obviamente, é
incorreto, visto que somamos dois números positivos. A resposta deveria ser +17, mas a
magnitude 17 requer mais de quatro bits e, portanto, ocorreu um overflow
(transbordamento) na posição do bit de sinal. Essa condição de overflow ocorre apenas
quando dois números positivos ou dois negativos são somados, e isso sempre produz
resultado errado.
• O overflow pode ser detectado verificando se o bit de sinal do resultado tem o mesmo
valor dos bits de sinal dos números que estão sendo somados (dois números positivos o
bit de sinal deve ser positivo, dois números negativos o bit de sinal deve ser negativo).

Você também pode gostar