Você está na página 1de 32

Arquitetura de Computadores

Prof. Fbio M. Costa Instituto de Informtica UFG 1S/2004 Representao de Dados e Aritimtica Computacional

Roteiro
Nmeros inteiros sinalizados e nosinalizados Operaes aritimticas Nmeros de ponto flutuante

Unidade Lgico-Aritimtica
Executa clculos Todos os demais componentes do computadores existem em funo dela Manipula nmeros inteiros Pode manipular nmeros de ponto flutuante (nmeros reais) FPU (Floating Point Unit)
integrado no chip do processador, ou em um co-processador separado (obsoleto)

ULA (ALU): Entradas e Sadas

Representao de inteiros
Apenas 0 e 1 para representar tudo Nmeros positivos so armazenados em repr. binria direta
Ex.: 41 = 00101001

Sem sinal de menos Sem ponto decimal (vrgula) Duas representaes possveis:
Sinal-e-magnitude Complemento de dois

Representao em sinalmagnitude
Bit mais esquerda (mais significativo) o bit de sinal
0: positivo 1: negativo

Ex.:
+18 = 00010010 -18 = 10010010

Problemas
Em operaes aritimticas preciso considerar ambos o sinal e a magnitude Duas representaes para zero (+0 e -0 !!!)

Representao em complemento de dois


+3 = 00000011 +2 = 00000010 +1 = 00000001 0 = 00000000 -1 = 11111111 -2 = 11111110 -3 = 11111101

Complemento de dois: Benefcios


Uma nica representao para zero Aritimtica mais simples (veja a seguir) Operao de negao torna-se mais simples:
3= complemento booleano: 00000011 11111100

Soma 1 ao bit menos signific. (LSB): 11111101

Representao geomtrica de inteiros em complemento de dois

Negao: Caso especial 1


0= 00000000 Negao bit-a-bit 11111111 Soma 1 ao LSB +1 Result 1 00000000 Overflow ignorado, ento: -0=0

Negao: Caso especial 2


-128 = 10000000 Negao bit-a-bit 01111111 Soma 1 ao LSB +1 Resultado = 10000000 Ento: -(-128) = -128 X Monitorar MSB (bit de sinal):
Ele deve mudar aps uma negao!

Faixa de nmeros
Complemento de 2 de 8 bits
+127 = 01111111 = 27 -1 -128 = 10000000 = -27

Complemento de 2 de 16 bits
+32767 = 011111111 11111111 = 215 - 1 -32768 = 100000000 00000000 = -215

Converso entre tamanhos e Extenso de sinal


Nmeros positivos: zeros esquerda +18 = 00010010 +18 = 00000000 00010010 Nmeros negativos: 1s esquerda -18 = 11101110 -18 = 11111111 11101110 i.e. reproduz o bit de sinal esquerda

Adio e subtrao
Adio binria normal Monitorar o overflow do bit de sinal Subtrao:
Tome o complemento de dois do subtraendo e adicione-o ao minuendo
i.e.: a b = a + (-b)

Assim, ns precisamos apenas de circuitos de adio e de complemento

Hardware para adio e subtrao

Multiplicao
Mais complexa:
Opera-se o produto parcial para cada dgito (do multiplicador) Desloca cada produto parcial uma casa esquerda Adiciona-se os produtos parciais

Multiplicao de nmeros inteiros de n bits:


produto com at 2n bits

Exemplo de multiplicao
1011 x 1101 1011 0000 1011 1011 10001111 Multiplicando (11 decimal) Multiplicador (13 decimal) Produtos parciais Obs.: se o bit multiplicador 1, copia-se o multiplicando; do contrrio: zero Produto (143 decimal)

Obs.: requer resultado de tamanho duplo

Multiplicao binria nosinalizada

Algoritmo direto

Execuo de um exemplo

Multiplicao de nmeros negativos


Algoritmo direto (anterior) no funciona
se um dos dois nmeros for negativo

Soluo 1
converter para positivo, se necessrio multiplicar como acima se os sinais forem diferentes, negar a resposta

Soluo 2
Algoritmo de Booth

Algoritmo de Booth

Exemplo (algoritmo de Booth)

Diviso
Mais complexa que a multiplicao Pior para nmeros negativos Baseado na operao com lpis e papel

Diviso de nmeros inteiros no sinalizados - Exemplo


10010011 Dividendo 1011 001110 1011 Restos 001111 Parciais 1011 100 1011 00001101 Divisor Quociente

Resto

Nmeros reais
Nmeros com fraes Poderiam ser representados em binrio puro
1001,1010 = 23 + 20 + 2-1 + 2-3 = 9,625

Onde fica o ponto binrio?


Fixo?
muito limitado

Mvel?
como mostrar onde ele est?

Ponto Flutuante
Bit sinal Expoente Polarizado Mantissa

+/- 0,<mantissa> X 2<expoente> O ponto fixado entre o bit de sinal e o corpo da mantissa O expoente indica a posio (relativa) do ponto

Representao Binria Polarizada


Repr.Decimal Repr.Polarizada

+8 +7 +6 +5 +4 +3 +2 +1 +0 0 1 2 3 4 5 6 7 8

1111 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000

Vantagem principal: comparao direta lgica mais simples Uso na notao de Ponto Flutuante: O expoente real convertido para a forma polarizada

Exemplos de nmeros de ponto flutuante

Faixa de Nmeros Representveis com 32 bits

Referncias
Stallings (*) Cap. 8: Aritimtica Computacional Patterson & Hennessy Cap. 4: Aritimtica Computacional

(*) referncia principal

Exerccios
Stallings
8.4 a 8.6 8.14 a 8.16