You are on page 1of 12

ARITMÉTICA DIGITAL

Introdução

Uma máquina digital (computadores e calculadoras) manipula e


armazena dados na forma binária.
Dessa forma, as operações aritméticas também serão realizadas sobre
os números na forma binária.
A aritmética digital não é muito diferente da aritmética tradicional (base
10). As operações de adição, subtração, multiplicação e divisão são
praticamente as mesmas, a não ser pelo número de algarismos usados nessas
operações: 2.

Adição Binária

A adição decimal é mostrada a seguir: 3 7 6


+4 6 1
837
A adição é feita a partir do algarismo menos significativo. Quando a
adição resulta em um valor maior que 9 ocorre um carry (vai um) para a
próxima posição.
Na adição binária podemos encontrar apenas quatro possibilidades:
0+0=0
0+1=1
1+0=1
1 + 1 = 10 (0 + carry 1 para a próxima posição)
Por exemplo:
+ 011 + 11,011
110 10,110
1001 110,001

Representação de Números com Sinal


Em sistemas digitais, os números binários são armazenados e
manipulados em conjuntos de flipflops, os registradores. Um registrador com 6
flip-flops pode armazenar números binários de 000000 a 111111 (0 a 6310),
representando a magnitude do número.
Como os computadores e calculadoras podem operar com números
positivos e negativos.

O bit A6 é chamado bit de sinal, ou seja, ele determina qual o sinal do


número. Esse número possui magnitude de 6 bits mais um bit de sinal.
Embora esse sistema seja direto, computadores e calculadoras não o
utilizam normalmente porque a implementação do circuito é mais complexa. O
sistema de representação de números binários com sinal mais utilizado é o
sistema de complemento a 2.

Forma do Complemento a 1

O complemento a 1 de um número binário é obtido substituindo-se cada


0 por 1 e cada 1 por 0.
Isso pode ser visto a seguir: 1 0 1 1 0 1
010010

Forma do Complemento a 2

O complemento a 2 de um número binário é obtido tomando-se o


complemento a 1 do número e adicionando-se 1 na posição do bit menos
significativo. Por exemplo:
1 0 1 1 0 1 Equivalente binário de 4510
0 1 0 0 1 0 Complemento a 1
+ 1 Adiciona-se 1
0 1 0 0 1 1 Complemento a 2 do número binário original

Representação de Números com Sinal Usando Complemento a 2

O sistema de complemento a 2 para representar números com sinal


funciona do seguinte modo:
- Se o número é positivo, a magnitude é mostrada na sua forma binária
direta e um bit de sinal 0 é colocado na frente do bit mais significativo (MSB).
- Se o número é negativo, a magnitude é representada na sua forma de
complemento a 2 e um bit de sinal 1 é colocado na frente do bit mais
significativo (MSB).

Representação de números positivos e negativos usando complemento


a 2.

Negação

A negação é a operação que converte um número positivo no seu


negativo equivalente ou um número negativo no seu positivo equivalente. Por
exemplo:

Faixa de Representação do Complemento a 2:


A faixa completa de valores que pode ser representada no sistema de
complemento a 2 que tem N bits de magnitude é:
Por exemplo, com N = 3 bits, a faixa de números sinalizados é mostrada
na tabela

fica:
Por exemplo, com N = 7 bits, mais um bit de
sinal, a faixa de valores
100000002 = -27 = -12810
011111112 = 28-1 = +12710

Adição no Sistema de Complemento a 2

Vamos analisar vários casos de adição:


I) Dois números positivos: A adição de dois números positivos é direta.
II) Um número positivo e um outro menor e negativo: O número negativo
deve estar na forma de complemento a 2.
A soma é feita sobre todos os bits, inclusive os bits de sinal. O carry (vai
um) gerado na última posição (MSB) é sempre descartado.
III) Um número positivo e um outro maior e negativo:
IV) Dois números negativos:
V) Dois números iguais em magnitude mas de sinais contrários:

Subtração no Sistema de Complemento a 2

A operação de subtração no sistema de complemento a 2, na verdade,


envolve uma operação de adição. Quando subtraímos um número binário (o
subtraendo) de outro número binário (minuendo), usamos o seguinte
procedimento:
- Negar o subtraendo.
- Adicionar o número obtido ao minuendo.
Por exemplo, +9 – (+4) = +5

Overflow Aritmético

O overflow aritmético ocorre quando temos, por exemplo, a adição de +9


e +8:
O resultado esperado seria +17, mas a resposta tem um sinal negativo e
uma magnitude incorreta.
A representação do 17 precisa de mais de quatro bits, ocasionando um
erro de overflow.
O overflow pode ocorrer sempre que dois números positivos ou dois
números negativos estão sendo somados.

Multiplicação de Números Binários

Na multiplicação os bits de sinais não foram usados. Observe que o


primeiro multiplicando (1001) é deslocado para a esquerda com relação ao
segundo multiplicando (1011). Depois disso, os resultados parciais são
somados para obter o produto final.

Multiplicação no Complemento a Dois


A multiplicação no complemento a dois é feita do mesmo modo descrito
anteriormente, desde que os dois multiplicandos estejam na forma binária
verdadeira.
Se os números a serem multiplicados forem positivos a multiplicação é
feita conforme mostrado anteriormente e o bit de sinal é 0. Se os números
forem negativos, eles devem ser convertidos para a forma binária verdadeira e
o resultado será positivo (bit de sinal igual a 0).
Quando os números a serem multiplicados tiverem sinais opostos, o
número negativo deve ser convertido para a forma binário verdadeira através
do complemento a dois. Como resultado esperado é negativo, deve ser
aplicado o complemento a dois e o bit de sinal será 1.

Divisão de Números Binários


A divisão binária é mostrada a seguir:
A divisão binária é igual à divisão decimal. A divisão de números com
sinal é feita de maneira idêntica à multiplicação, onde os números negativos
são ransformados em positivos através do complemento a dois.

Adição de Números BCD

Muitos computadores e calculadoras usam o código BCD para


representar números decimais. Na operação de adição usando números
representados pelo código BCD devem ser levadas em consideração duas
possibilidades:
- Soma menor ou igual a 9 – Por exemplo, 5 + 4:
Outro exemplo, 45 + 33:
A soma de cada dígito não gerou nenhum vai-um (carry).
- Soma maior do que 9 – Por exemplo, 6 + 7:
O resultado da soma não é um código BCD, já que o resultado é um
número maior do que 9. O resultado esperado seria 0001 0011 (13 BCD) e
para corrigir isso devemos somar ao resultado o código 0110 (6 BCD), ou seja:

Aritmética Hexadecimal
Números hexadecimais são amplamente utilizados na programação de
computadores em linguagem de máquina e na especificação de endereços de
memória de computadores.

Adição em Hexadecimal

O procedimento para a adição em hexadecimal é o seguinte:


- Some os dois dígitos hexadecimais em decimal, inserindo mentalmente
o decimal equivalente para os dígitos maiores do que 9;
- Se a soma é menor ou igual a 15, ele pode ser expresso por um dígito
hexadecimal;
- Se a soma é maior ou igual a 16, subtraia 16 e coloque um carry na
próxima posição.

Subtração em Hexadecimal

Um modo eficiente de representar números binários é através dos


números hexadecimais. A subtração hexadecimal utiliza o mesmo método dos
números binários: o complemento a dois do subtraendo é somado ao minuendo
e qualquer carry da posição MSD deverá ser descartado.
O complemento a dois de um número hexadecimal é mostrado a seguir:
Um outro método é mostrado a seguir:

Circuitos Aritméticos
A função essencial de computadores e calculadoras é a realização de
operações aritméticas. Um bloco chamado Unidade Lógica e Aritmética (ULA)
é responsável pelas operações aritméticas em um computador.

Unidade Lógica e Aritmética


O principal objetivo de uma ULA é aceitar dados binários armazenados
na memória e executar as operações lógicas e aritméticas sobre estes dados
de acordo com as instruções da unidade de controle.

A ULA é constituída de, pelo menos, dois registradores: o registrador B e


o registrador acumulador.
Ela também possui lógica combinacional que realiza as operações
lógicas e aritméticas sobre os números binários armazenados nos
registradores B e acumulador.
Por exemplo, os passos para a execução de uma operação de adição
são mostrados a seguir:
- A unidade de controle recebe uma instrução da unidade de memória
especificando que um número armazenado em uma posição particular de
memória deve ser adicionado ao número que está armazenado na acumulador;
- O número a ser adicionado é transferido da memória para o registrador
B;
- O número no registrador B e o número no acumulador são somados
nos circuitos lógicos (ao comando da unidade de controle). O resultado é
enviado para o acumulador para ser armazenado.

Somador Binário Paralelo


Vamos analisar a seguinte operação de adição de dois números
binários:
Podemos ver que cada bit das parcelas é somado para gerar um bit no
resultado da adição. No caso de um carry (vai-um), esse também é somado.

Diagrama em blocos de um somador binário paralelo


O bloco SC #0 é chamado somador completo porque soma bits A0 e B0
das parcelas e ainda um possível bit C0 de carry.

Projeto de um Somador Completo

O bloco do somador completo possui três entradas (A, B e CIN) e duas


saídas (S e COUT). As entradas A e B são os bits a serem adicionados e CIN é
o carry do bit anterior. A saída S é o resultado da adição e COUT é a saída de
carry, indicando um vai-um.
Pelo método do Mapa de Karnaugh podemos encontrar a expressão
para S e COUT.

Circuito lógico do somador paralelo completo de 4 bits


O procedimento para um operação de adição é o seguinte:
- Pulsar CLEAR para fazer registrador A = 0000;
- Colocar a primeira parcela a ser somada nas entradas D3D2D1D0
(esse dado pode estar vindo de uma memória). Pulsar LOAD para que as
entradas sejam transferidas para o registrador B;
- Pulsar TRANSFER para a realização da operação de adição do
conteúdo do registrador A com o conteúdo do registrador B. Nesse caso, o
valor de B é transferido para A, resultando A = B;
- Colocar a segunda parcela a ser somada nas entradas D3D2D1D0.
Pulsar LOAD para que as entradas sejam transferidas para o registrador B;
- Pulsar TRANSFER para a realização da operação de adição do
conteúdo do registrador A com o conteúdo do registrador B. O resultado da
adição está no registrador A (saídas).

Somador Paralelo Integrado

Os circuitos integrados 7483A, 74LS83A, 74283 e 74LS283 são


somadores paralelos de quatro bits.

Ligação em Cascata de Somadores Paralelos

Blocos de somadores podem ser associados em cascata de forma a


efetuar adições de números binários maiores. Por exemplo, se dois somadores
de quatro bits forem associados em cascata podemos efetuar adições de
números com oito bits.

Circuito Integrados de ULAs

As ULAs são circuitos capazes de realizar diversas operações lógicas e


aritméticas sobre os dados binários de entrada. Dentre essas operações
podemos citar:
- Operação Clear;
- Operação Soma;
- Operação Subtração;
- Operação EX-OR;
- Operação OR;
- Operação AND;
- Operação PRESET.
Os circuitos integrados 74LS382 e 74HC382 são ULAs que possuem as
características acima citadas.
O 74LS181/HC181 é uma ULA de quatro bits e tem até 16 operações
diferentes. O
74LS881/HC881 é similar ao circuito integrado 181, mas tem a
capacidade de realizar algumas operações lógicas adicionais.

You might also like