Você está na página 1de 19

CIRCUITOS

DIGITAIS

Anselmo Cukla
Aritmética digital:
operações e circuitos
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:

„„ Descrever números binários positivos e negativos.


„„ Examinar as operações aritméticas em circuitos digitais.
„„ Interpretar circuitos aritméticos binários.

Introdução
Atualmente, estamos rodeados por equipamentos eletrônicos e digitais
que realizam diversas tarefas, sobretudo operações aritméticas, como
celulares, tablets, alguns relógios, as próprias calculadoras e, sem dúvida,
os computadores. Por incrível que pareça, todas as operações realizadas
pelos computadores e pelas plataformas de processamento de dados
complexos, no fundo, são traves de operações aritméticas e movimento
de registros. E, embora não aprofundemos o assunto, é importante saber
como são feitas as operações aritméticas básicas em forma digital.
Neste capítulo, você estudará, a partir da conversão de números biná-
rios, como são realizadas as operações aritméticas em sistemas digitais,
analisando operações com números de comprimento finito, e como
podemos interpretar os resultados. Antes, veremos como são tratados os
números binários quando têm sinal negativo ou positivo, para fazermos
as devidas operações aritméticas, além das bases octal e hexadecimal,
outras formas de representação numérica. Finalmente, será abordado
o caso em que se realizam essas operações com circuitos aritméticos
binários, a partir de operações matemáticas básicas.
2 Aritmética digital: operações e circuitos

1 Números binários positivos e negativos


Da mesma forma quando trabalhamos e realizamos cálculos com números
na base decimal, ao operarmos com números binários, é bem provável que
utilizemos tanto números positivos quanto negativos, os quais, necessariamente,
devem ser diferenciados. De acordo com Tocci, Widner e Moss (2011), para
facilitar o trabalho desses números adiciona-se aos números binários um bit
de sinal. Por convenção, foi adaptado como o bit 0 ao sinal positivo, e como
o bit 1 ao sinal negativo, como representado na Figura 1.

Figura 1. Representação de um número binário com sinal.


Fonte: Tocci, Widner e Moss (2011, p. 254).

Na Figura 1, podemos ver que o número binário 0110100 representa o


número +52 em base decimal no registro A, e o bit 0 na posição A6 representa
o sinal positivo. Do mesmo modo, o número –52 de base decimal do registro B
pode ser representado em base binária, apenas devendo-se adicionar um sinal 1,
como indicado na posição B6. O bit de sinal tem a finalidade de representar
se o número é positivo ou negativo, normalmente armazenado em registros
digitais. Esse tipo de representação também é conhecido como sinal-magnitude
para números binários com sinal.
Aritmética digital: operações e circuitos 3

De acordo com Tocci, Widner e Moss (2011) e Floyd (2007), para repre-
sentar números negativos na base binária, devemos observar outros métodos
de representação de números binários, pois, com a forma sinal-magnitude,
há maior dificuldade na hora de realizar operações aritméticas. Assim, outra
forma de representação de números binários é a de complemento de 1, em
que, em determinado número na base binária, os 1s se substituem por 0s e os
0s por 1s, tal como apresentado em (1):

(1)

De acordo com (1), o número binário na parte superior é o número binário


original, e o inferior o complemento de 1.
A forma mais usual de representação do sinal de um número binário consiste
no complemento de 2 — para a sua aplicação a um número binário, é realizado
o complemento de 1 e, logo, se soma 1 à posição do bit menos significativo
(TOCCI; WIDNER; MOSS, 2011), processo representado em (2).

(2)

De acordo com o apresentado em (2), pode-se afirmar que o complemento


de 2 do número binário 11010101 é 00101011.
Para a representação do sinal, quando utilizamos complemento de 2, pre-
cisamos considerar as seguintes situações:

„„ se o número é positivo, o número é representado em forma direta,


somente tornando-se necessário adicionar um 0 em frente do bit MSB
(most-significant-bit — “bit mais significativo”), como apresentado
na Figura 2;
„„ para o caso de números negativos, ao número de complemento de 2 se
adiciona um bit de sinal 1 em frente do MSB, tal como visto na Figura 2,
para o caso de –45 em base decimal.
4 Aritmética digital: operações e circuitos

MSB 0 1 0 1 1 0 1 = +4510

Bit de sinal (+) Binário verdadeiro

1 0 1 0 0 1 1 = 4510

Bit de sinal ( ) Complemento de 2

Figura 2. Representação de um número binário na forma de complemento de 2 com sinal.


Fonte: Adaptada de Tocci, Widner e Moss (2011).

A forma de complemento de 2 é a mais utilizada para realizar operações


aritméticas em sistemas digitais. Para este estudo, todos os números binários
terão representação do sinal como “0” para “+” e “1” para “–” no bit MSD;
em todos os casos, quando o número binário for negativo, estará representado
na forma de complemento de 2. Seguidamente, veremos as quatro principais
operações aritméticas utilizando números binários: adição, subtração, mul-
tiplicação e divisão.

Sistema de numeração hexadecimal


Sua diferença quanto ao sistema binário reside no tipo de representação,
já que o primeiro utiliza dois símbolos (0 e 1), o sistema decimal 10 símbolos
(0 até 9) e o sistema hexadecimal uma base com 16 símbolos — uma base de
representação que emprega os dígitos de 0 até 9 e, ainda, as letras de A até F
(FLOYD, 2007; TOCCI; WIDNER; MOSS, 2011; TOKHEIM, 2013a).
O Quadro 1 apresenta uma relação comparativa entre o sistema decimal,
o hexadecimal e o binário, observando-se que um mesmo número em base
hexadecimal utiliza um único símbolo para a sua representação, enquanto,
no sistema binário, são necessários quatro dígitos.
Aritmética digital: operações e circuitos 5

Quadro 1. Equivalência entre base binária, decimal e hexadecimal

Hexadecimal Decimal Binário

0 0 0000

1 1 0001

2 2 0010

3 3 0011

4 4 0100

5 5 0101

6 6 0110

7 7 0111

8 8 1000

9 9 1001

A 10 1010

B 11 1011

C 12 1100

D 13 1101

E 14 1110

F 15 1111

Fonte: Adaptado de Tocci, Widner e Moss (2011).

Os sistemas em bases hexadecimais são largamente utilizados, pois existe


uma equivalência direta com a base binária, possibilitando uma mais rá-
pida leitura de grandes números nessa base e um apropriado agrupamento.
Empregamos essa base de representação em muitos tipos de aplicações, sendo
uma das mais conhecidas a área de programação.
6 Aritmética digital: operações e circuitos

Sistema de numeração octal


Outra forma de representação numérica, além da decimal, binária e hexade-
cimal, é a octal, na qual temos 8 símbolos envolvidos, de 0 até 7. O sistema
numérico octal proporciona uma forma apropriada e rápida de conversão para
o binário, e vice-versa, embora seja menos utilizado em sistemas digitais, como
é o caso do hexadecimal (FLOYD, 2007; TOKHEIM, 2013a). No Quadro 2,
apresentamos uma comparação entre esse sistema numérico e os demais já
mencionados.

Quadro 2. Equivalência entre base octal, binária, decimal e hexadecimal

Decimal Octal Hexadecimal Binário

0 0 0 0000

1 1 1 0001

2 2 2 0010

3 3 3 0011

4 4 4 0100

5 5 5 0101

6 6 6 0110

7 7 7 0111

8 10 8 1000

9 11 9 1001

10 12 A 1010

11 13 B 1011

12 14 C 1100

13 15 D 1101

14 16 E 1110

15 17 F 1111
Aritmética digital: operações e circuitos 7

O incremento da contagem do sistema numérico octal é similar ao do


sistema decimal, com a diferença de que os dígitos 8 e 9 não são utilizados.
Comumente, para evitar erros e identificar perfeitamente a qual base cor-
responde cada número representado, deve-se utilizar em subscrito a base de
correspondência, por exemplo, 1210 está na base decimal, 1012 na base binária,
178 na base octal e 1A16 na base hexadecimal.
A seguir, descreveremos as quatro operações aritméticas básicas realizadas
na base binária. Vale ressaltar que sempre identificaremos no texto a base em
que trabalharemos (binário, decimal, etc.); caso contrário, o número em ques-
tão apresentará um subscrito com a base correspondente, como já explicado.

2 Operações aritméticas em circuitos digitais


Assim como as operações matemáticas convencionais no sistema decimal que
utilizamos no dia a dia, as operações aritméticas de soma, subtração, divisão e
multiplicação também são tratadas no mundo digital. Para tanto, abordaremos
a seguir as quatro operações fundamentais das matemáticas, contudo agora
na base de representação dos números binários.

Adição
De acordo com Tocci, Widner e Moss (2011), a operação em números binários
é realizada do mesmo modo quando se opera com números decimas, como
expressado em (3):

MSB 825 LSB


+1 5 3 (3)
978

onde o dígito menos significativo denomina-se LSB (least-significant-digit;


“bit menos significativo”), justamente pelo qual se começa a fazer a operação.
Como mencionado anteriormente, o dígito mais significativo chama-se MSB.
8 Aritmética digital: operações e circuitos

Para operar com números digitais, a lógica é similar da empregada para


números decimais (FLOYD, 2007; TOCCI; WIDNER; MOSS, 2011); para
a soma, podem ocorrer quatro situações quando trabalhamos com números
binários: 1) os dois números são positivos; 2) o número positivo é de maior
magnitude do que o negativo; 3) o número negativo é de maior magnitude do
que o positivo; e 4) ambos os números são negativos, analisados a seguir com
base em Tocci, Widner e Moss (2011).

Dois números positivos

Na adição de dois números positivos, obtém-se outro número positivo de maior


magnitude que os dois primeiros. Em (4), é apresentado um exemplo de soma
de dois números positivos.

0 0010110 (22)
Sinal
+ 0 0011011 (27) (4)
0 0110001 (49)

Nesse caso, o número binário é puro, ou seja, não foi complementado,


e o resultado corresponderá à soma direta entre ambos os números positivos.

Número positivo de maior magnitude do que o negativo

Da mesma forma que acontece em números decimais, a soma de um número


positivo de maior magnitude do que o negativo dá como resultado outro número
positivo, como apresentado em (5) na soma de.

0 1000
+ 1 1011 (5)
Carry 1 0 0011

Veja que ambos os números têm um bit de sinal, e o resultado é um nú-


mero positivo. No processo da soma, é gerado um quinto dígito da parcela do
resultado (carry), cujo valor é 1. Esse carry sempre deve ser desconsiderado
para esse caso. Assim, o resultado da operação é 8+ (–5) = 3 = 0 0011.
Aritmética digital: operações e circuitos 9

Número negativo de maior magnitude do que o positivo

Essa operação oferece como resultado um número negativo em complemento


de 2, como observado em (6), na soma de (–7) + 5.

1 1001
+ 0 0101 (6)
1 1110

Veja que o resultado da operação já apresenta um bit de sinal negativo, assim


como esperado. Por outra parte, o resultado está na forma de complemento de
2. Assim, para obter o resultado em binário puro, deve ser realizado novamente
o complemento de 2; assim, o resultado de 1 1110 fica como 0 0010, ou seja, 2.

Ambos os números da operação são negativos

Assim como no caso anterior, aqui também o resultado é negativo, como


vemos em (7), na soma de (–7) + (–5).

1 1001
+ 1 1011 (7)
Carry 1 1 0100

Como podemos observar em (7), o resultado apresenta um carry que é


desconsiderado; para esse caso, o resultado é 1 0100. Com o complemento
de 2, o resultado é 0 1100 = +12, como era de se esperar comparando com a
mesma operação em decimal.
10 Aritmética digital: operações e circuitos

Existe uma condição chamada overflow, que acontece quando o resultado excede
o número de bits dos números somados, resultando em um transbordamento da
capacidade (conhecido como overflow). Um overflow pode ocorrer quando ambos
os números têm o mesmo sinal e o número transbordado aparece como um sinal
incorreto. Veja o exemplo da soma de dois números positivos de 8 bits cada um, para
a qual o resultado é um número de 9 bits, como é o caso de 125 + 58 = 183.

01111101
+ 00111010 Valor
Sinal incorreto
incorreto 1 0110111

Observe que o valor de 183 requer 8 bits para a sua representação, mas existem
somente 7 bits para fazê-lo, além de um bit de sinal. Então, nessa operação, temos
um overflow; quando o sistema que processa essa operação somente suporta 8 bits
(7 + 1 bit de sinal), o resultado apresentado será incorreto.

Subtração com números binários e complemento de 2


De acordo com Floyd (2007), a subtração é um caso particular da soma ou
adição: fazer a diferença de +10 (subtraendo) de +7 (minuendo) é similar a fazer
a soma de –7 + 10. Assim, quando se realiza a subtração entre dois números
binários, troca-se o sinal do subtraendo (fazendo o complemento de 2).
Então, para fazer a operação de subtração de dois números binários com
sinal, deve-se realizar o complemento de 2 do subtraendo e a soma convencio-
nal, eliminando, por consequência, qualquer bit de carry no final. A seguir,
você pode observar um exemplo para compreender melhor o assunto.

Realize a seguinte subtração de números com sinais: 00001000-11100010, ou 8 – (–30).

0 0001000 Minuendo (+8)


+ 0 0011110 Subtraendo (complemento de 2 de –30)
0 0100110 Resultado (+38)
Aritmética digital: operações e circuitos 11

Veja que o exemplo utiliza um número positivo (minuendo) e um negativo (subtra-


endo), mas podem ser utilizadas quaisquer combinações de sinais, seguindo sempre
a regra explicada. Contudo, devemos dar especial atenção ao sinal do resultado final,
que, para o exemplo, foi positivo.

Multiplicação de números binários


De acordo com Tocci, Widner e Moss (2011), realizamos a multiplicação entre
números binários da mesma maneira que fazemos com números decimais,
porém, em sistemas binários, o processo é ainda mais simplificado, já que
somente são utilizados 0 e 1. Para exemplificar, é realizada a operação de
multiplicação de dois números binários (8), que em decimal seria, por exemplo,
10 × 8 = 8010.

Multiplicando 1010 1010


× 1000 1810 Multiplicador
0000
0000 (8)
0000
1010
Resultado 1010000 8010

Podemos observar que foram utilizados números binários em forma direta,


pois se tratava de números positivos. Antes de fazer a multiplicação com
dois números negativos, será necessário fazer o complemento de 2 (deixá-los
binários puros, sem sinal); naturalmente, o resultado será positivo. Quando os
números têm sinais diferentes, o resultado será negativo, e o número negativo
inicialmente deverá ser representado em complemento de 2 (um número binário
puro e sem sinal, similar ao valor absoluto e positivo).
12 Aritmética digital: operações e circuitos

Divisão de números binários


O procedimento para realizar a divisão de dois números binários é similar ao da
divisão de dois números decimais, tal como é o caso apresentado na Figura 3,
em que se realiza a divisão de 59 ÷ 5 = 11, e o resto é 4.

Resultado

Subtração binária

Resto

Figura 3. Exemplo de divisão de números


binários (59 ÷ 5 = 11)10.

Na Figura 3, é realizado um procedimento similar ao operar com números


decimais, com a ressalva de que as subtrações de números binários devem
considerar o complemento de 2 do subtraendo. Esses cálculos precisam ser
realizados como cálculos auxiliares. Observe que o resultado da divisão é
10112 = 1110, e o resto é 1002 = 410.
Nesse exemplo, foram utilizados números positivos, mas, assim como
mencionado anteriormente, quando se realizam operações com números
negativos, estes devem ser convertidos para positivos, utilizando a operação
de complemento de 2. Lembre-se de que, se os sinais do dividendo e divisor
forem iguais, o resultado é positivo; caso os sinais sejam diferentes, o resultado
será negativo.

3 Circuitos aritméticos binários


Incrivelmente, uma das únicas funções realizadas pelos processadores dos
celulares e computadores são as operações aritméticas. E, graças à tecnologia,
a velocidade de operação desses processadores tem sido cada vez mais alta.
A seguir, veremos alguns circuitos eletrônicos que realizam as operações
Aritmética digital: operações e circuitos 13

aritméticas anteriormente descritas, contudo, antes, discutiremos resumi-


damente como funciona internamente um processador digital realizando as
operações aritméticas.

Unidade aritmética lógica


A unidade aritmética lógica (arithmetic-logic-unit — ALU) constitui o cora-
ção de um processador digital no qual se realizam as operações aritméticas.
De acordo com Tocci, Widner e Moss (2011) e Tokheim (2013b), o objetivo
da ALU consiste em processar os dados binários enviados desde a memória
e realizar operações aritméticas com eles. Na Figura 4, apresentamos um
diagrama de blocos de uma ALU e as principais partes que a compõem.

Figura 4. Diagrama de blocos de uma ALU.


Fonte: Tocci, Widner e Moss (2011).

Como apresentado na Figura 4, uma ALU é formada por pelo menos dois
registradores (registrador A e B) e um registrador acumulador, além de uma
unidade de memória, um sistema de controle e um circuito lógico combinacional
que realiza as operações aritméticas. Segundo Tocci,l Widner e Moss (2011),
uma ALU opera da seguinte maneira: 1) a unidade de controle define quais
endereços de posição da memória serão somados ao valor armazenado no
registrador acumulador; a unidade de controle recebe instruções da unidade
14 Aritmética digital: operações e circuitos

de memória; 2) o número que será somado se transfere para o registrador B;


3) o circuito lógico realiza a soma dos números do registrador B e do acu-
mulador. O resultado é devolvido ao acumulador para o armazenamento;
4) o novo número que está no acumulador poderá ser armazenado na memória
ou utilizado para uma próxima operação.
O registrador acumulador recebe esse nome porque acumula as sucessivas
somas das operações aritméticas, aspecto importante, pois, ao acumular os
resultados de operações intermediárias, como o caso da multiplicação ou da
divisão como visto anteriormente, consegue prover a necessidade de armazenar
temporariamente os resultados parciais. A seguir, veremos como funciona o
circuito lógico, o encarregado das operações lógicas da ALU.

Somador binário paralelo


Todos os sistemas digitais que realizam operações aritméticas o fazem me-
diante a movimentação de registros, ou seja, em todas as operações feitas
por um computador pessoal (processador de texto, vídeos, imagens, etc.)
internamente são tratadas mediante a movimentação de registros e aritméticas
lógicas entre dois números binários, similares a uma soma (FLOYD, 2007;
TOCCI; WIDNER; MOSS, 2011). Assim, para entender essa premissa básica,
estudaremos como funciona um somador binário paralelo.
Agora, reveremos, pela Figura 5, como funciona a soma binária entre dois
números de 5 bits, raciocinando sobre como essa operação aritmética é tratada
a partir do uso de registradores.

0 0 1 1 1

Primeira parcela
+ 1 0 1 0 1
Armazenada
em registrador
acumulador

Armazenada em
Segunda parcela 0 0 1 1 1
registrador B
+
Soma 1 1 1 0 0
(A ser somado na
Carry 0 0 1 1 1 próxima posição)

Figura 5. Processo de uma soma binária em uma ALU.


Fonte: Adaptada de Tocci, Widner e Moss (2011).
Aritmética digital: operações e circuitos 15

De acordo com a Figura 5, o processo se inicia com a soma dos bits LSB
da primeira e segunda parcela. Nesse caso, há um carry de 1, pois 1 + 1 = 10.
O carry corresponde ao bit excedente da operação da primeira coluna e é
utilizado na operação da segunda coluna. Agora, na operação da segunda,
estão envolvidos 3 bits na operação da soma, os bits da 1ª e da 2ª parcela e o
carry (1 + 0 + 1 = 10), o que produz um novo carry, trasladado à 3ª coluna
da operação. Observe que esse processo se repete a cada coluna, ou seja,
a cada posição de bit do registrador. Como o processo é realizado bit a bit nos
registradores, é possível usar um circuito lógico baseado em flip-flops para
tal finalidade, como apresentado na Figura 6.

Figura 6. Diagrama de blocos de um somador paralelo completo de 5 bits.


Fonte: Adaptada de Tocci, Widner e Moss (2011).

No diagrama de blocos apresentado na Figura 6, os bits da primeira parcela


(A0…A4) são armazenados no acumulador (ou registrador A). Já as variáveis
da segunda parcela (B0…B4) provêm do registrador B e pertencem à segunda
parcela da soma. As variáveis denominadas C (C0…C5) representam o carry
correspondente à cada operação bit a bit de determinada coluna, e o carry
representa o bit de overflow. Por outra parte, as variáveis S (S…S4) representam
o resultado da operação de cada coluna.
16 Aritmética digital: operações e circuitos

Para realizar essa operação de soma, o circuito somador (configuração


também conhecida como somador completo paralelo) recebe as duas parcelas
de números binários e, ainda, um bit de carry da posição anterior (caso tenha
havido operação anterior). Normalmente, o valor de C0 é 0, quando trabalha
o circuito em forma individual, ou pertence aos números LSB de um circuito
lógico de maior quantidade de bits do que o exemplo apresentado (TOKHEIM,
2013b). No entanto, há operações nas quais o valor de C0 pode ser 1.
Normalmente, um circuito somador completo utiliza três entradas (registros
A, B e C) e gera duas saídas (S e carry). Assim, um somador completo tem
A1, B1 e C1 como entradas, e S1 e C2 como saídas, e assim sucessivamente. Isso
será repetido o número de vezes igual ao número de bits com os registros.
No exemplo da Figura 6, o tamanho dos registros ou das parcelas do somador
paralelo é de 5 bits; no entanto, no caso de computadores e celulares, esse
número pode ser de 32 a 64 bits.
De acordo com Tocci, Widner e Moss (2011), a configuração da Figura 6 é
chamada de somador paralelo pelo fato de que todos os bits das parcelas dos
registros são inseridos em forma simultânea no somador; assim, as operações
bit a bit são realizadas todas ao mesmo tempo. Isso se diferencia da operação
que fazemos manualmente, pois realizamos a operação bit a bit em forma sub-
sequente. Por isso, a adição paralela representa um dos somadores mais rápidos.
Neste capítulo, abordamos os números digitais, e sua forma de representação
em outras bases, como a decimal, a octal, a hexadecimal e a binária. Ainda,
foram apresentadas as diferentes formas de escrever um número binário com
sinal. Depois, descrevemos como se realizam as operações aritméticas básicas
em um nível lógico. Por fim, apresentamos uma explicação e um exemplo de
realização de operações aritméticas em nível de hardware ou circuitos lógicos.

TOCCI, R. J.; WIDNER, N. S.; MOSS, G. L. Sistemas digitais: princípios e aplicações. 11. ed.
São Paulo: Pearson, 2011.
FLOYD, T. L. Sistemas digitais: fundamentos e aplicações. 9. ed. Porto Alegre: Bookman,
2007.
TOKHEIM, R. Fundamentos de eletrônica digital: sistemas combinacionais. 7. ed. Porto
Alegre: AMGH, 2013a. (Série Tekne, v. 1).
TOKHEIM, R. Fundamentos de eletrônica digital: sistemas sequenciais. 7. ed. Porto Alegre:
AMGH, 2013b. (Série Tekne, v. 2).

Você também pode gostar