Você está na página 1de 55

IFPA

ARQUITETURA E ORGANIZAÇÃO
DE COMPUTADORES

Profa. Rita de Cássia C. Gomes


IFPA

ARITMÉTICA COMPUTACIONAL

Profa. Rita de Cássia C. Gomes


Aritmética Computacional
Todo sistema de computação moderno é construído de modo
a ser capaz de armazenar, interpretar e manipular informações
codificadas na forma binária.
Além disso, muitos deles possuem a capacidade de
representar valores e efetuar operações aritméticas utilizando
recursos de outras bases da potência de 2 (mais especialmente
as bases octal - base 8 e hexadecimal - base 16).
Esse é o caso, por exemplo, da representação e aritmética de
números em ponto flutuante; alguns sistemas de computação
IBM empregavam a base 16 quando efetuavam aritmética em
ponto flutuante.
Números em Ponto Fixo
1. Adição de Números Binários

A operação de soma de dois números em base 2 é efetuada


de modo semelhante à soma decimal, levando-se em conta,
apenas, que só há dois algarismos disponíveis (0 e 1).
Assim:
0+0=0
0+1=1
1+0=1
1 + 1 = 0, com “vai 1”.
Números em Ponto Fixo
1. Adição de Números Binários

Ex.1: Efetuar a soma de 4510 e 4710:


1 1 1 1 11 “vai 1”
45 101101
+ 47 + 101111
92 1011100
Números em Ponto Fixo
1. Adição de Números Binários

Ex.2:
1 1 1111 1 “vai 1”
101101,01
+ 100111,11
1010101,00
Números em Ponto Fixo
1. Adição de Números Binários

Ex.3:
11 11 1 “vai 1”
11001,1101
+ 11100,1110
110110,1011
Números em Ponto Fixo
2. Adição de Números Octais e Hexadecimais

Os procedimentos para adição nas bases 8 (octal) e 16


(hexadecimal) também não diferem da base 10, exceto
quanto à quantidade de algarismos diferentes em cada base.
No caso da base octal, temos 7 algarismos disponíveis e,
portanto, a soma de 2 algarismos produzindo um valor
superior a 7 implica a utilização do conceito de “vai 1”
(consiste em um valor igual a 8 na ordem inferior).
Para a base 16, o “vai 1” somente ocorre quando a soma de 2
algarismos excede o valor da base 16.
Números em Ponto Fixo
2.1. Adição de Números Octais

Ex.1:
11 “vai 1”
3463
+ 1524
5207
Números em Ponto Fixo
2.1. Adição de Números Octais

A execução detalhada do procedimento de soma para o Ex.1 é apresentada


a seguir, de modo que se possa compreender melhor o processo:
3 + 4 = 7, valor colocado na coluna, em resultado;
6 + 2 = 8 (não há algarismo na base 8 - o maior algarismo é 7). Assim,
temos: 8 = 8 + 0; o 0 é colocado na coluna como resultado e o 8 é passado
para a esquerda com valor 1 (é o “vai 1”), pois 8 unidades de uma ordem
representam apenas 1 unidade de ordem superior - mais à esquerda);
4 + 5 +1 (“vai 1”) = 10 (10 = 8 + 2); logo, é 2 na coluna de resultado e
“vai 1” à esquerda, representando o valor 8);
3 + 1 + 1 (“vai 1”) = 5, colocado na coluna resultado.
Números em Ponto Fixo
2.1. Adição de Números Octais

Ex.2:
1 1 1 “vai 1”
422,74
+ 513,74
1136,70
Números em Ponto Fixo
2.1. Adição de Números Octais

Ex.3:
111 1 “ vai 1”
27,416
+ 55,635
105,253
Números em Ponto Fixo
2.2. Adição de Números Hexadecimais

Ex.1:
11 1 “vai 1”
3A54,3B
+ 1BE8,7A
56 3C,B5 “soma”
Números em Ponto Fixo
2.2. Adição de Números Hexadecimais

A execução detalhada do procedimento de soma para o Ex.1 é apresentada


a seguir, de modo que se possa compreender melhor o processo:
11(B) + 10(A) = 21, que excede 5 da base 16. Logo, coloca-se 5 na linha
“soma” e “vai 1” para a esquerda;
3 + 7 + 1 = 11 (algarismo B);
4 + 8 = 12 (algarismo C);
5 + 14(E) = 19, que excede de 3 a base 16. Logo, coloca-se 3 na linha
“soma” e “vai 1” para a esquerda;
10(A) + 11(B) + 1 = 22, que excede 6 da base 16 e “vai 1”;
3 + 1 + 1 = 5.
Números em Ponto Fixo
2.2. Adição de Números Hexadecimais

Ex.2:
1 11 “vai 1”
3A943B
+ 23B7D5
5E4C10
Números em Ponto Fixo
2.2. Adição de Números Hexadecimais

Ex.3:
11 11 “vai 1”
2AC79
+ B7EEC
E2 B65
Números em Ponto Fixo
3. Subtração de Números Binários

A subtração em base 2, na forma convencional, usada


também no sistema decimal (minuendo - subtraendo =
diferença), é relativamente mais complicada por dispormos
apenas dos algarismos 0 e 1.
Assim, 0 menos 1 necessita de um “empréstimo” de um
valor igual à base (no caso é 2), obtido do primeiro
algarismo diferente de zero, existente à esquerda.
Se estivéssemos operando na base decimal, o “empréstimo”
seria de valor igual a 10.
Números em Ponto Fixo
3. Subtração de Números Binários

Ex.1:
2
00 2 “empréstimo”
101101 “minuendo”
- 100111 “subtraendo”
000110
Números em Ponto Fixo
3. Subtração de Números Binários

Ex.2:
1
02 0 22
100110001
- 010101101
010000100
Números em Ponto Fixo
3. Subtração de Números Binários

A execução detalhada do procedimento de subtração para o Ex.2 é apresentada a seguir, de


modo que se possa compreender melhor o processo:
1–1=0
0–0=0
0 – 1 não é possível. Retira-se 1 da 5a ordem, a partir da direita, ficando 2 unidades na 4a
ordem. Dessas 2 unidades, retira-se 1 unidade para a 3a ordem (nesta 3a ordem ficam, então,
2), restando 1 unidade nesta 4a ordem. Logo: 2 - 1 = 1
1–1=0
0–0=0
1–1=0
0–0=0
0 – 1 não é possível. Retira-se 1 da ordem à esquerda, que fica com zero e passam-se 2
unidades para a direita. Logo: 2 – 1 = 1
0–0=0
Números em Ponto Fixo
4. Subtração de Números Octais e Hexadecimais

Os procedimentos para realização da operação de


subtração com valores representados em base 8 (octal)
ou 16 (hexadecimal) são os mesmos das bases 2 ou 10,
porém com a já conhecida diferença em termos de
algarismos disponíveis.
Números em Ponto Fixo
4.1. Subtração de Números Octais

Ex.1:
88
6 20 8 “empréstimos”
7312 “1ª parcela”
- 3465 “2ª parcela”
3625
Números em Ponto Fixo
4.1. Subtração de Números Octais

A execução detalhada do procedimento de subtração para o Ex.1 é


apresentada a seguir, de modo que se possa compreender melhor o processo:
2 – 5 não é possível. Então, retira-se 1 unidade da ordem à esquerda, a
qual vale uma base de unidades (no caso, base = 8) da direita, somando-se
ao valor 2. Logo: 8 + 2 = 10 – 5 = 5
1 – 1 = 0 – 6 não é possível. Então, retira-se 1 unidade da esquerda (que
fica com 3 – 1 = 2 unidades), passando 8 para a direita, o que fica 8 + 0 = 8.
Logo: 8 – 6 = 2
3 – 1 = 2 – 4 não é possível. Então, retira-se 1 da esquerda (7 – 1 = 6),
passando oito unidades para a direita. Logo: 8 + 2 = 10 – 4 = 6
7–1=6–3=3
Números em Ponto Fixo
4.1. Subtração de Números Octais

Ex.2:
3526,53
- 2764,36
0542,15
Números em Ponto Fixo
4.2. Subtração de Números Hexadecimais

Ex.1:
16
3B16 D16
4C7BE8
- 1E927A
2DE96E
Números em Ponto Fixo
4.2. Subtração de Números Hexadecimais

A execução detalhada do procedimento de subtração para o Ex.1 é apresentada a seguir, de


modo que se possa compreender melhor o processo:
8 – A não é possível. Retira-se, então, 1 unidade da ordem à esquerda (E – 1 = D),
passando 16 unidades (valor igual ao da base) para a direita, as quais são somadas ao valor
existente, 8. Logo: 16 + 8 = 24 – A = 24 – 10 = 1410, equivale ao algarismo E16
D – 7 = 13 – 7 = 6
B – 2 = 11 – 2 = 9
7 – 9 não é possível. Retira-se uma unidade da ordem à esquerda (C – 1 = B), passando 16
unidades para a direita, as quais são somadas ao valor existente, 7. Logo: 16 + 7 = 23 – 9 =
1410, equivalente ao algarismo E16
B – E não é possível. Retira-se 1 unidade da ordem à esquerda (4 – 1 = 3), passando 16
unidades para a direita, as quais são somadas ao valor existente, B16 = 1110. Logo: 1610 + B16
= 1610 + 1110 = 27 – 14 = 1310, equivalente ao algarismo D16
3–1=2
Números em Ponto Fixo
5. Multiplicação de Números Binários

O processo de multiplicação binária é realizado na


forma usualmente efetuada para a base 10, isto é, somas
sucessivas, visto que os algarismos do multiplicador
somente podem ser 0 ou 1.
Números em Ponto Fixo
5. Multiplicação de Números Binários

Ex.1:
110 “multiplicando”
x 101 “multiplicador”
110 “primeiro produto parcial”
+ 000 “segundo produto parcial”
110 “terceiro produto parcial”
11110 “resultado”
Números em Ponto Fixo
5. Multiplicação de Números Binários

Ex.2:
10101 “multiplicando”
x 1101 “multiplicador”
10101 “4 produtos parciais,
+ 00000 cada um deslocado
10101 1 casa para a
10101 esquerda”
100010001 “resultado”
Números em Ponto Fixo
5. Multiplicação de Números Binários

Ex.3:
10010
x 100
00000
+ 00000
10010
1001000
Números em Ponto Fixo
5. Multiplicação de Números Binários

Observação:
Em um sistema numérico posicional, o deslocamento de um número uma
posição para a esquerda ou para a direita é equivalente, respectivamente, à
multiplicação ou divisão desse número pela sua base.
Por exemplo:
103510 x 10 = 1035010 (deslocamento à esquerda)
103510 / 10 = 0103,510 (deslocamento à direita)

1011102 x 2 = 10111002 (deslocamento à esquerda)


1011102 / 2 = 0101112 (deslocamento à direita)
Números em Ponto Fixo
6. Divisão de Números Binários

Como nas demais operações aritméticas, a divisão binária é efetuada de modo


semelhante à divisão decimal, considerando-se apenas que:

0/1=0 e 1/1=1 e que a divisão por zero acarreta erro.

Podemos efetuar uma divisão binária pelo método comum, isto é, dividendo /
divisor = quociente e resto. Ou podemos realizá-la através de sucessivas
subtrações, um processo mais simples de implementação em circuitos digitais.
Nesse caso, o desejado quociente será a quantidade de vezes que o divisor
poderá ser subtraído do dividendo, até que se obtenha um quociente igual a
zero.
Números em Ponto Fixo
6. Divisão de Números Binários
O outro método consiste na execução do Ex.1 apresentado a seguir, o qual é o
detalhamento do processo usado para executarmos essa operação no lápis e papel, na
base decimal.
a) a partir da esquerda, avançam-se tantos algarismos quantos sejam necessários para
obter-se um valor igual ou maior que o divisor;
b) encontrado esse valor, registra-se 1 para o quociente;
c) subtrai-se do valor obtido no dividendo o valor do divisor (na divisão binária, como
o quociente somente pode ser de valor igual a 1, a subtração é sempre com o próprio
valor do divisor);
d) ao resultado acrescentam-se mais algarismos do dividendo (se ainda houver algum),
até obter-se um valor igual ou maior que o divisor (como no item a). Se o(s)
algarismo(s) for(em) zero, acrescenta(m)-se zero(s) ao quociente;
e) repete-se o processo a partir do item b, até que se esgotem os algarismos do
dividendo.
Números em Ponto Fixo
6. Divisão de Números Binários

Ex.1:
1002 / 102 = 102
10’0 10 item a: 10 (dividendo) = 10 (divisor)
- 10 10 item b: quociente = 1
00 item c: 10 – 10 = 0
item d: dividendo = 00, quociente = 0
Números em Ponto Fixo
6. Divisão de Números Binários

Ex.2:
1010102 / 1102 = 1112
101010 110
- 110 111
1001
- 110
0110
- 110
000
Números em Ponto Fixo
6. Divisão de Números Binários

Ex.3:
1001012 / 1002 = 10012
100101 100
- 100 1001
0101
- 100
001
Números em Ponto Fixo
7. Representação de Números em Ponto Fixo
Esse método consiste na determinação de uma posição fixa
para a vírgula (ou ponto). Todos os valores representados em
ponto fixo para uma determinada operação possuem a mesma
quantidade de algarismos inteiros, bem como a mesma
quantidade de algarismos fracionários; isto é, a vírgula deve
ser alinhada em todas as parcelas de modo a garantir essa
igualdade de algarismos e do resultado e, para isso,
acrescenta-se zeros à esquerda da parte inteira e à direita da
parte fracionária quando necessário. Por exemplo:
1101,101 1110,001 0011,110
Números em Ponto Fixo
7. Representação de Números em Ponto Fixo
As posições mais adotadas para a vírgula são:
 Na extremidade esquerda do número – nesse caso, o número é
totalmente fracionário;
 Na extremidade direita do número – nesse caso, o número é
inteiro.
Em qualquer desses casos, no entanto, a vírgula fracionária não
estará fisicamente representada na memória; sua posição é
determinada na definição da variável, realizada pelo
programador (ou pelo compilador), e o sistema memoriza essa
posição, mas não a representa fisicamente.
Números em Ponto Fixo
7. Representação de Números em Ponto Fixo
Na representação de números em ponto fixo, os valores positivos são
representados pelo bit zero de sinal. Normalmente esse bit é
posicionado como o algarismo mais significativo do número, o mais
à esquerda, e pelos n-1 restantes bits, que correspondem ao valor
absoluto do número (magnitude).
Quanto aos números negativos, o sinal é representado pelo bit um e a
magnitude pode ser representada por um dos três seguintes modos:
 Sinal e magnitude;
 Complemento a 1;
 Complemento a 2.
Números em Ponto Fixo
7.1. Sinal e Magnitude
O meio normal para representar números com sinal (+ ou -) é
adicionando-se um BIT ao número, chamado BIT de sinal (BIT mais
representativo).
Convenção:
0: BIT DE SINAL que representa um número positivo;
1: BIT DE SINAL que representa um número negativo.
Ex:
Magnitude
0 0111 = (+ 7)10
1 0111 = (- 7)10

Bit de sinal
Números em Ponto Fixo
7.1.1 Sinal e Magnitude – Operação de SOMA
A seguir serão descritos os passos de um possível algoritmo para
soma, utilizando-se números representados em sinal e magnitude:
1) Verificam-se os sinais dos números e efetua-se uma comparação
entre eles.
2) Se ambos os números têm o mesmo sinal, somam-se as
magnitudes; o sinal do resultado é o mesmo das parcelas.
3) Se os números têm sinais diferentes:
a) identifica-se a maior das magnitudes e registra-se o seu sinal;
b) subtrai-se a magnitude menor da maior (apenas as magnitudes);
c) sinal do resultado é igual ao sinal da maior magnitude.
Números em Ponto Fixo
7.1.1. Sinal e Magnitude – Operação de SOMA

Ex.1: Considerar que a soma será realizada com os números


representados na forma binária e a palavra de dados (tamanho dos
registradores e da UAL) terá 6 bits.
+ 13 001101
+ 12 001100
+ 25 011001
Números em Ponto Fixo
7.1.1. Sinal e Magnitude – Operação de SOMA

Ex.2: Considerar a palavra de dados (tamanho dos registradores


e da UAL) com 6 bits.
+ 18 010010
- 11 101011
+ 7 000111
Números em Ponto Fixo
7.1.1. Sinal e Magnitude – Operação de SOMA

Ex.3: Considerar a palavra de dados (tamanho dos registradores


e da UAL) com 16 bits.
- 21 1 000000000010101
+ 10 0 000000000001010
- 11 1 000000000001011
Números em Ponto Fixo
7.1.2 Sinal e Magnitude – Operação de
SUBTRAÇÃO
A seguir serão descritos os passos de um possível
algoritmo para subtração, utilizando-se números
representados em sinal e magnitude:
1) Troca-se o sinal do subtraendo.
2) Procede-se como no algoritmo da soma.
Números em Ponto Fixo
7.1.2. Sinal e Magnitude – Operação de SUBTRAÇÃO

Ex.1: Considerar a palavra de dados (tamanho dos registradores e


da UAL) com 6 bits.
(-18) - (+12)
Troca-se o sinal do subtraendo: + 12 = 0 01100
- 12 = 1 01100
- 18 1 10010
- 12 1 01100
- 30 1 11110
Números em Ponto Fixo
7.2 Representação de Números Negativos em
Complemento
Em face dos inconvenientes apresentados pela representação e
aritmética em sinal e magnitude e das vantagens que, em
contrapartida, a representação em complemento a 2 (C2) possui,
os sistemas de computação empregam, de modo generalizado,
aritmética de complemento a 2 em vez de sinal e magnitude.
Serão apresentados os conceitos e detalhes da aritmética tanto
em complemento a 2 (C2) quanto em complemento a 1 (C1),
embora este último não seja empregado nos sistemas atuais.
Números em Ponto Fixo
7.2.1 Quadro Comparativo entre as
Modalidades de Representação em Ponto
Fixo
Ver slide seguinte
Números em Ponto Fixo
Tipo de Dupla Custo Velocidade
Representação representação
para o zero

Sinal e Magnitude SIM Alto Baixa (perda de


(desvantagem) (componentes tempo gasto na
eletronicos manipulação dos
separados para sinais, de modo a
soma e determinar o tipo
subtração) da operação e o
sinal do
resultado)

Complemento a 1 SIM Baixo(um Média (operação


(desvantagem) componente mais demorada
único para soma que em C2)
e subtração)

Complemento a 2 NÃO (vantagem) Baixo (um Alta (algoritmo


componente simples e igual
único para soma para soma e
e subtração) subtração)
Números em Ponto Fixo
7.2.2 Aritmética Complementar
Complemento Aritmético: É definido como sendo o que
falta a um número para atingir o seu módulo. Módulo de
um número de um dígito é a quantidade de números
diferentes que podemos distinguir.
Ex.: Sistema Decimal ⇒ Módulo 10
2→8
4→6
No sistema binário, composto por dois símbolos, isto é, os
BITS 0 e 1, um é complemento do outro.
Números em Ponto Fixo
7.2.2 Aritmética Complementar
Subtração no sistema complemento-de-2: Obtenção
do complemento-de-2 de um número binário:
- Troca-se cada 0 por 1 e vice-versa (complemento-de-
1);
- Soma-se 1 ao resultado.
Números em Ponto Fixo
7.2.2 Aritmética Complementar
Ex.: 1001 ⇒0110 (complemento-de-1)
+ 1
0111 (complemento-de-2)

OBS: A principal vantagem do uso de complemento é


executar a SUBTRAÇÃO pelo processo da ADIÇÃO.
Números em Ponto Fixo
7.2.2 Aritmética Complementar
Dois números positivos
(+7) 0 0111
+ (+3) 0 0011
(+10) 0 1010
Números em Ponto Fixo
7.2.2 Aritmética Complementar
Número positivo e número negativo
(+7) 0 0111 0 0111
+ (-3) 1 0011 + 1 1101
Complemento-de-2 10 0100 ⇒(+4)
Números em Ponto Fixo
7.2.2 Aritmética Complementar
Dois números negativos
(-7) 1 0111 1 1001
+ (-3) 1 0011 + 1 1101
Complemento-de-2 11 0110
Descomplementar o resultado da soma:
1 0110 1 1001
+ 1
1 1010 ⇒ (-10)

Você também pode gostar