Você está na página 1de 24

Aula 9

Introdução à Computação

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto Flutuante

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto Flutuante
 Precisamos de uma maneira para representar
 Números com frações, por exemplo, 3,1416
 Números muito pequenos, por exemplo, 0,00000001
 Números muito grandes, por exemplo, 3,15576 x 109
 Uma boa representação para os valores expressos
anteriormente é a notação científica.
 3,0 x 100
 No caso de números binários a notação científica
equivalente seria:
 1,1 x 21

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto Flutuante
 Representação
 Sinal, expoente, significando
 (-1)sinal x fração x 2expoente
 Mais bits para a fração fornece mais precisão
 Mais bits para o expoente, aumenta o range de
valores.
 Os computadores, em geral, utilizam o padrão de ponto
flutuante IEEE 754.
 Precisão única (float): expoente de 8 bits, fração de
23 bits.
 Precisão dupla (double): expoente de 11 bits, fração
de 52 bits.
ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto Flutuante
 Representação de um número de ponto flutuante.

 Expoentes também podem ser negativos, mas eles não utilizam a


representação complemento de 2.
 Na verdade, expoentes são “deslocados” para facilitar a
classificação
 A menor representação negativa é formada por 0s.
 A maior representação positiva é formada por 1s.
 Logo, o número em ponto flutuante é calculado desta forma:
 (-1)sinal x fração x 2(expoente – desvio)

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto flutuante
Quando analisamos um número de ponto
flutuante considerando o bit de sinal como
bit significativo, a parte relativa a fração
passa a receber o nome de significando.
Se o número é negativo, é adicionado 1 a
fração(.xxxx), caso contrário 0.

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto flutuante: Operações
aritméticas
Operações aritméticas envolvendo ponto
flutuantes sofrem do mesmo problema
apresentado nas operações inteiras
(overflow).
Além de overflow, operações de ponto
flutuante pode também resultar em
underflow
 Underflow é quando o resultado obtido é
pequeno demais para ser representado em um
número de ponto flutuante.ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto Flutuante: Arredondamento
Além do underflow, podemos ter
problemas relativo a forma de
arredondamento.
Basicamente existem quatro formas de
arredondamento:
 Sempre arredondar para cima.
 Sempre arredondar para baixo.
 Truncamento.
 Arredondar para o próximo par.
ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto Flutuante - exemplo

(+6132,78910)
Fração: +0.6132789
Expoente: +04
Expoente: posição real do ponto decimal
Quatro pts a direita do ponto decimal (na
fração)
Notação científica: + 0.6132789 x 10+4

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Ponto flutuante: generalização

Generalizando: F × 10E
F (fração)
E (expoente)
Apenas F e E são fisicamente representados
Desnecessário o resto
Binário: mesmo padrão (apenas na base
2)
(+1001.112)
Fração (8 bits): 01001110
ADS – IFBA
Expoente (6 bits): 000100
www.ifba.edu.br/professores/antoniocarlos
Operações em Ponto Flutuante
 Suporte a números inteiros com e sem sinal.
 Suporte a números fracionários: 3,1414, 0,00001 etc.
 Notação científica: 1,34 x 103.
 Números normalizados: 1 dígito antes do ponto decimal.
 Números binários também podem ser normalizados.
 Ponto decimal / ponto binário.
 Aritmética com números normalizados: aritmética de
ponto flutuante.
 Em C: “float”.
 Formato: 1,xxxxxxxx2 × 2yyyy.

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Padrão IEEE 754

Torna implícito o “1” à esquerda do ponto


binário.
Quando o expoente for zero, o hardware
não considera o primeiro bit “1” implícito,
para permitir a representação do número
“0” em ponto flutuante.

N = (−1) S (1 + Mantissa ) × 2 E
ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Padrão IEEE 754

 Deve permitir comparações rápidas.


 Seria melhor: o menor coeficiente possível valer
00000000, e o maior 11111111.
 Modificação:
 Subtrair 127 (peso) do exponente.
 Representação de –1: -1+127=-1+01111111=01111110.
 +1=+1+127=100000002.
 Formato:
S ( E − Peso )
N = (−1) × (1 + Mantissa ) × 2
 Peso para precisão dupla: 1.023.
ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Exemplo 1

1. Representar o número -0,7510 em ponto


flutuante e precisão simples.
2. Representar o número 1,7510 em ponto
flutuante e precisão simples.

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Resposta da 1
 1a fase: converter para binário:
 0,75 x 2 = 1,5 → 1
 0,5 x 2 = 1,0 → 1
 -0,7510 = -0,112 = -0,11 x 20 = -1,1 x 2-1

 Em precisão simples:
N = (−1) S × (1 + Mantissa ) × 2( E − Peso )
 Resultado:

 Representação:

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Exemplo

Converter a palavra abaixo em ponto


flutuante para número

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Resposta

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Operações Lógicas

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Operações Lógicas
 Operações lógicas com binários
 AND (conjunção, 2 operandos)
 OR (disjunção, 2 operandos)
 XOR (ou exclusivo, 2 operandos)
 NOT (negação, 1 operando)
 Três notações com operadores
 In-fixa (operador entre argumentos: 3 + 4)
 Pós-fixa (oper. sucede argumentos: 3 4 +)
 Pré-fixa (oper. precede argumentos: + 3 4)
 Esta (Notação Polonesa Reversa) usada em LISP

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
AND

0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
OR

0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
XOR

0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
NOT

NOT: operador unário (apenas 1


argumento)

not 0 = 1
not 1 = 0

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos
Um exemplo

1011 0101 and 1110 1110

ADS – IFBA
www.ifba.edu.br/professores/antoniocarlos