Buscar

Representação de Dados e Aritmética Computacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Arquitetura de Computadores
Prof. Fábio M. Costa
Instituto de Informática – UFG
1S/2004
Representação de Dados e 
Aritimética Computacional
Roteiro
Números inteiros sinalizados e não-
sinalizados
Operações aritiméticas
Números de ponto flutuante 
Unidade Lógico-Aritimética
Executa cálculos
Todos os demais componentes do 
computadores existem em função dela
Manipula números inteiros
Pode manipular números de ponto flutuante 
(números reais) – FPU (Floating Point Unit)
integrado no chip do processador, ou
em um co-processador separado (obsoleto)
ULA (ALU): Entradas e Saídas
Representação de inteiros
Apenas 0 e 1 para representar tudo
Números positivos são armazenados em 
repr. binária “direta”
Ex.: 41 = 00101001
Sem sinal de menos
Sem ponto decimal (vírgula)
Duas representações possíveis:
Sinal-e-magnitude
Complemento de dois
Representação em sinal-
magnitude
Bit mais à esquerda (mais significativo) é o 
bit de sinal
0: positivo
1: negativo
Ex.:
+18 = 00010010
 -18 = 10010010
Problemas
Em operações aritiméticas é preciso considerar 
ambos o sinal e a magnitude
Duas representações para zero (+0 e -0 !!!)
Representação em 
complemento de dois
+3 = 00000011
+2 = 00000010
+1 = 00000001
 0 = 00000000
 -1 = 11111111
 -2 = 11111110
 -3 = 11111101
Complemento de dois: 
Benefícios
Uma única representação para zero
Aritimética mais simples (veja a seguir)
Operação de negação torna-se mais simples:
3 = 00000011
complemento booleano: 11111100
Soma 1 ao bit menos signific. (LSB): 11111101
Representação geométrica de 
inteiros em complemento de dois
Negação: Caso especial 1
0 = 00000000
Negação bit-a-bit 11111111
Soma 1 ao LSB +1
Result 1 00000000
Overflow é ignorado, então:
- 0 = 0 √
Negação: Caso especial 2
-128 = 10000000
Negação bit-a-bit 01111111
Soma 1 ao LSB +1
Resultado = 10000000
Então:
-(-128) = -128 X
Monitorar MSB (bit de sinal):
Ele deve mudar após uma negação!
Faixa de números
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
Conversão entre tamanhos e 
Extensão de sinal
Números positivos: zeros à esquerda
+18 = 00010010
+18 = 00000000 00010010
Números negativos: 1’s à esquerda
-18 = 11101110
-18 = 11111111 11101110
i.e. reproduz o bit de sinal à esquerda
Adição e subtração
Adição binária normal
Monitorar o overflow do bit de sinal
Subtração:
Tome o complemento de dois do subtraendo e 
adicione-o ao minuendo
i.e.: a – b = a + (-b)
Assim, nós precisamos apenas de circuitos 
de adição e de complemento
Hardware para adição e 
subtração
Multiplicação
Mais complexa:
Opera-se o produto parcial para cada dígito (do 
multiplicador)
Desloca cada produto parcial uma casa à 
esquerda
Adiciona-se os produtos parciais
Multiplicação de números inteiros de n bits:
produto com até 2n bits
Exemplo de multiplicação
 1011 Multiplicando (11 decimal)
 x 1101 Multiplicador (13 decimal)
 1011 Produtos parciais
 0000 Obs.: se o bit multiplicador é 1, 
 1011 copia-se o multiplicando;
 1011 do contrário: zero
 10001111 Produto (143 decimal)
 
Obs.: requer resultado de tamanho duplo
Multiplicação binária não-
sinalizada
Algoritmo direto
Execução de um exemplo
Multiplicação de números 
negativos
Algoritmo direto (anterior) não funciona
se um dos dois números for negativo
Solução 1
converter para positivo, se necessário
multiplicar como acima
se os sinais forem diferentes, negar a resposta
Solução 2
Algoritmo de Booth
Algoritmo de Booth
Exemplo (algoritmo de Booth)
Divisão
Mais complexa que a multiplicação
Pior para números negativos
Baseado na operação com “lápis e 
papel”
Divisão de números inteiros 
não sinalizados - Exemplo
Divisor
Quociente
Resto
Restos
Parciais
Dividendo
10010011 1011
 1011 00001101 
001110
 1011
 001111
 1011
 100
Números reais
Números com frações
Poderiam ser representados em 
binário puro
1001,1010 = 23 + 20 + 2-1 + 2-3 = 9,625
Onde fica o ponto binário?
Fixo?
muito limitado
Móvel?
como mostrar onde ele está?
Ponto Flutuante
+/- 0,<mantissa> X 2<expoente>
O ponto é fixado entre o bit de sinal e 
o corpo da mantissa
O expoente indica a posição (relativa) 
do ponto
B
it 
si
na
l
Expoente
Polarizado
Mantissa
Representação Binária 
Polarizada
Repr. Decimal Repr. Polarizada
+8 1111
+7 1111
+6 1110
+5 1101
+4 1100
+3 1011
+2 1010
+1 1001
+0 1000
­0 0111
­1 0110
­2 0101
­3 0100
­4 0011
­5 0010
­6 0001
­7 0000
­8 ­
Vantagem principal:
•comparação direta
•lógica mais simples
Uso na notação de Ponto 
Flutuante:
•O expoente real é 
convertido para a forma 
polarizada
Exemplos de números de ponto 
flutuante
Faixa de Números 
Representáveis com 32 bits
Referências
Stallings (*)
Cap. 8: Aritimética
Computacional
Patterson & Hennessy
Cap. 4: Aritimética Computacional
(*) referência principal
Exercícios
Stallings
8.4 a 8.6
8.14 a 8.16

Outros materiais