Mudanças entre as edições de "Map0151"
(→Representação de números fracionários e decimais numa base) |
(→Uma função para colocar um número decimal na forma binária) |
||
Linha 75: | Linha 75: | ||
print (binario(21.75)) | print (binario(21.75)) | ||
</syntaxhighlight>}} | </syntaxhighlight>}} | ||
+ | |||
+ | ==== Representação em ponto flutuante ==== | ||
+ | Consideramos uma base fixa <math>\beta > 1</math>. Um número real <math>\alpha \in \mathbb{R}</math> positivo pode ser escrito nesta base como: | ||
+ | :<math>\alpha = [a_k\cdots a_0.b_1b_2\cdots]_{\beta} </math> | ||
+ | Isto significa que: | ||
+ | :<math>\alpha = a_k\beta^k + \cdots + a_0 + \frac{b_1}{\beta} +\frac{b_2}{\beta^2} + \cdots </math> | ||
+ | Na equação acima, colocando <math> \beta^{k+1}</math> em evidência temos: | ||
+ | :<math>\alpha = \left( \frac{a_k}{\beta} + \cdots + \frac{a_0}{\beta^{k+1}} + \frac{b_1}{\beta^{k+2}} +\frac{b_2}{\beta^{k+3}} + \cdots\right)\times \beta^{k+1} </math> | ||
+ | ou ainda, lembrando da notação de um número numa base dada: | ||
+ | :<math>\alpha = [0.a_k \cdots a_0 b_1 b_2\cdots]_{\beta} \times \beta^{k+1} </math> | ||
+ | Esta última fórmula é importante. O número real <math> \alpha</math> fica caracterizado por três dados: | ||
+ | * O número <math> m = [0.a_k \cdots a_0 b_1 b_2\cdots]_{\beta} \in (0,1)</math> chamado de '''mantissa'''. | ||
+ | * O número <math> e = k+1 </math> chamado de '''expoente''' | ||
+ | * O sinal do número <math>\sigma</math> | ||
+ | Esta representação do número <math>\alpha </math> como <math>\sigma m \times \beta^e</math> chamaremos de '''representação normal em ponto flutuante''' na base <math>\beta</math>. | ||
+ | Em geral a base fica clara pelo contexto! |
Edição das 19h33min de 1 de março de 2013
Conteúdo[ocultar] |
Números no Computador
Muitos dos algoritmos de cálculo numérico, por uma questão prática, deverão ser executados numa máquina real. Nestas máquinas, no entanto, a capacidade de memória para representação dos números é finita. Vários números reais (infinitos, de fato) terão a mesma representação no computador (ou calculadora), daí originando-se os erros de arredondamentos. Vamos ver qual é a técnica usada atualmente para diminuir os erros de arredondamentos.
Representação de números inteiros numa base
Seja β>1 um número natural. Então podemos representar qualquer número inteiro k como a soma k=sgn(k)∗a0β0+⋯+asβs
Exemplo: 39=[100111]2
Representação de números fracionários e decimais numa base
Seja novamente β>1 um número natural.
Se x∈(0,1) então x=b1β+⋯+bkβk+⋯
Exemplo: 0.9=[0.1110011001100...]2
Uma função para colocar um número decimal na forma binária
In[1]: | # -*- coding: utf-8 -*- """ |
Representação em ponto flutuante
Consideramos uma base fixa β>1. Um número real α∈R positivo pode ser escrito nesta base como: α=[ak⋯a0.b1b2⋯]β
- O número m=[0.ak⋯a0b1b2⋯]β∈(0,1) chamado de mantissa.
- O número e=k+1 chamado de expoente
- O sinal do número σ
Esta representação do número α como σm×βe chamaremos de representação normal em ponto flutuante na base β. Em geral a base fica clara pelo contexto!