Ponto flutuante
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ãosinalizados
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 sinalmagnitude
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!