Aritmética Digital 1
Aritmética Digital 1
Aritmética Digital 1
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:
• (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.
• 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.
• 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).