Você está na página 1de 14

INSTITUTO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE IPORÁ - GO

Ciência da Computação
Introdução à Ciência da Computação
Luciana Recart Cardoso
luciana.cardoso@ifgoiano.edu.br
Notação de Ponto Fixo
Utiliza um ponto que funciona da mesma forma que o ponto da notação
decimal.
• os dígitos à esquerda do ponto representam a parte inteira do valor;
• os dígitos à direita do ponto representam a parte não inteira,
• o expoente da base 2: 2 decrementado em 1 a cada casa afastada do
ponto.
Exemplo:

2
Soma e subtração de números
fracionários
Basta alinharmos os pontos e aplicarmos o mesmo algoritmo de adição,
ou subtração binária demonstrada anteriormente.

Exemplo: 10,10012 + 110,012 = X2


10,10012
+ 110,01002
1000,1101 2

3
Ponto Flutuante –
para que serve?

• Cálculos matemáticos com precisão,


• Renderização de imagens digitais
(criação de imagens pelo computador)
entre outros.
• Os processadores atuais se dedicam
muito em aperfeiçoar a técnica de
seus chips para a aritmética de ponto
flutuante, devido à demanda de
aplicativos gráficos e jogos 3D que se
utilizam muito deste recurso.

4
Representação dos números inteiros
negativos e não negativos utilizando
a Notação de Excesso
Cada número é codificado como um padrão de bits, de comprimento
convencionado.

Para estabelecer um sistema de excesso, primeiro escolhemos o


comprimento do padrão a ser empregado, em seguida, escrevemos todos
os diferentes padrões de bits com este comprimento, na ordem em que
seriam gerados se estivéssemos contando em binário.

5
Notação de Excesso

Logo, observamos que o primeiro desses padrões, que representa um dígito 1


como seu bit mais significativo, figura aproximadamente no centro da lista.

6
Notação de Excesso
Na tabela anterior, o padrão foi escolhido para representar o ZERO, os padrões que
o seguem serão utilizados para representar 1, 2, 3. . . , os padrões que o precedem
serão adotados para a representação dos inteiros negativos -1, -2, -3. . .

Exemplo:

No sistema de Notação de Excesso é fácil distinguir entre padrões que


representam valores negativos e positivos, pois aqueles que apresentam um
0 (zero) no bit mais significativo são números negativos, servindo o mesmo
como bit de sinal.

7
Motivo da criação da Notação de Ponto
Flutuante
O Ponto Fixo, é do tamanho da
parte inteira e da fracionária, fica fixo
com relação a seu armazenamento
em memória, logo para números com
a parte apenas inteira, a região
alocada para tratar a parte
fracionária será inutilizada e vice-
versa. Para evitar este desperdício
criou-se a Notação de Ponto
Flutuante.

8
Notação de Ponto Flutuante

Em seguida dividimos os sete bits


Primeiramente, escolhemos o bit restantes em dois grupos: o campo de
mais significativo do byte para ser expoente e o campo da mantissa
o bit de sinal do número.
Seja um byte contendo o padrão
de bits:
01101011

• ‘0’ neste bit significa valor positivo e


Figura1 - Divisão de 1 byte nos campos da Notação de Ponto Flutuante
• ‘1’ neste bit significa valor negativo.

9
Notação de Ponto Flutuante
Continuação
0 1 1 0 1 0 1 1

Figura 2 - Divisão de 1 byte nos campos da Notação de Ponto Flutuante preenchido

Constatamos que o bit de sinal é ‘0’, o expoente é ‘110’, e a mantissa é ‘1011’.


Para decodificarmos o byte, extraímos primeiro a mantissa e colocamos o ponto
binário à sua esquerda, obtendo-se: .1011

10
Notação de Ponto Flutuante
Continuação (um expoente negativo codifica um
0 1 1 0 1 0 1 1 deslocamento para a esquerda do ponto
binário com a adição do valor 0).
Como resultado temos: 10.11
10.11 representa na Notação de Ponto
Fixo: = 1×21 + 0×20 + 1×2-1 + 1×2-2
= 2+0+0,5+0,25 = 2,75
Figura 2 - Divisão de 1 byte nos campos da Notação de Ponto Flutuante preenchido
Observamos que o bit de sinal do nosso
Depois, extraímos o conteúdo do campo do exemplo é 0, assim, o valor representado
expoente (interpretamos como um inteiro em três é positivo (+2,75).
bits - método de representação de excesso), o
resultado é o número positivo 2. Portanto, Figura 3 - Vídeo sobre a Notação de Ponto
Flutuante
devemos deslocar o ponto binário dois bits à direita
http://youtu.be/psyH7eBVLr4
11
Notação de Ponto Flutuante - notação
de excesso para representar o expoente
Para representar o expoente no sistema
de ponto flutuante devemos comparar maior
as amplitudes de dois valores. >?
Emparelhar-se as suas representações
da esquerda para a direita em busca
do primeiro bit em que os dois diferem.
Se ambos os bits de sinal forem iguais a
‘0’, o maior dos dois será aquele que Quando os bits de sinal forem iguais a
primeiro apresentar, um ‘1’ da esquerda ‘1’, o maior número é aquele que
para a direita. apresentar o ‘0’ na diferença dos
padrões (sempre percorrendo o número
Ao comparar os dois padrões, conclui-se da esquerda para a direita).
que o primeiro padrão é maior que o
segundo.

12
Notação de Ponto Flutuante -
Problema com Arredondamento
Consideremos o número 2,625 no sistema de ponto flutuante de um byte, convertemos
em binário, obtendo 10.101. Entretanto, não há espaço suficiente no campo da mantissa
e o último 1, que representa a última parcela: 0,125, é desprezada (vide figura 4).

2,62510 → 10.1012
Expoente → 110
Mantissa → 10101

Figura 4 - Divisão de 1 byte nos campos da Notação de Ponto Flutuante preenchido


Ao ignorarmos este problema, teremos 01101010, que representa o valor 2,5 e não
2,625. O que gera erro de arredondamento, devido o campo da mantissa ter apenas
quatro bits, e por questão de precisão, seriam necessários no mínimo cinco bits. 13
Notação de Ponto Flutuante - Overflow
e Underflow
A adição e a subtração de ponto flutuante
tratam os expoentes junto com o valor dos Equalizando os expoentes, temos
operandos, logo há a necessidade de
equalizar os expoentes e efetuar a operação
sobre a mantissa equalizada. o resultado Normalizando
deve ser normalizado para a representação Resultado = 1000
utilizada: Expoente = 110 (2 na Notação de Excesso)
Vamos analisar a seguinte adição em Ponto
Representação do resultado (01101010 +
Flutuante: 01101010+ 01011100 = ? 01011100) em Ponto Flutuante = 01101000
Processo
Mantissa 1 = 1010 Figura 5 - VídeoAdição, Subtração Binária e
Expoente = 110 (2 na Notação de Excesso) Overflow
https://www.youtube.com/watch?v=3Zx4b3IB
Mantissa 2 = 1100 4ns
Expoente = 101 (1 na Notação de Excesso) 14

Você também pode gostar