Professional Documents
Culture Documents
Profs.: Bruno C. N. Queiroz J. Anto B. Moura Ulrich Schiel Maria Izabel C. Cabral
DSC/CCT/UFCG
Princpios usados em CN
Comuns anlise matemtica, C&T 1. Iterao ou aproximao sucessiva
Partindo-se de soluo aproximada, inicial, repetem-se mesmas aes/processos para refinar soluo inicial OBS: para evitar trabalho sem fim (e de graa), deve-se determinar se a iterao converge (nem sempre o caso...) e condies de parada
Princpios usados em CN
2. Discretizao
Na resoluo de problemas contnuos (aqueles definidos matematicamente com uma passagem ao limite), inverte-se a passagem ao limite, discretizando o problema Ex: e dx ~
x2
...
Princpios usados em CN
3. Aproximao
Substituir uma funo ou modelo por outro que oferea comportamento (de interesse) semelhante, mais simples de manipular f(x) g(x) Ex: assntotas ilustram comportamento no limite de uma funo (complexa) de interesse
Princpios usados em CN
4. Transformao
Princpios usados em CN
5. Diviso e Conquista
Sistemas de numerao
Representao no posicional
romanos
Representao semi-posicional
hebraicos
Sistemas de numerao
alemo
Vinte e um = ein-und-zwanzig
Noventa = quatre-vingt-dix
francs
Sistemas de numerao
Representao posicional
10 dgitos disponveis [0,1,2, ... ,9] Posio indica potncia positiva de 10 5432 = 5x103 + 4x102 + 3x101 + 2x100
Sistemas de numerao
Representao de inteiros
Posio indica potncia positiva de 2 1011 na base 2 = 1x23 + 0x22 + 1x21 + 1x20 = 8+0+2+1 = 11 na base decimal Ou, melhor 1x23 + 0x22 + 1x21 + 1x20 = 1 + 2(1+2(0+2(1))) = 11
Sistemas de numerao
Posio da parte inteira indica potncia positiva de 10 Potncia negativa de 10 para parte fracionria 54,32 = 5x101 + 4x100 + 3x10-1 + 2x10-2
Sistemas de numerao
Posio da parte inteira indica potncia positiva de 2 Potncia negativa de 2 para parte fracionria 10,11 na base 2 = 1x21 + 0x20 + 1x2-1 + 1x22 = 2+0+1/2+1/4 = 2,75 na base decimal
Nossa anatomia e cultura Uso nos computadores Octal (8), {0,1,2, ... , 7} Hexadecimal (16), {0,1,2, ... , 9, A,B,C,D,E,F} Dodecimal (relgio, calendrio)
e binrio (2)
Outros sistemas
Uma caixa aliengena com o nmero 25 gravado na tampa foi entregue a um grupo de cientistas. Ao abrirem a caixa, encontraram 17 objetos. Considerando que o aliengena tem um formato humanide, quantos dedos ele tem nas duas mos?
Converso de base
10 b
Converso de base
Um sistema ternrio tem 3 "trits", cada trit assumindo o valor 0,1 ou 2. Quantos "trits" so necessrios para representar um nmero de seis bits?
y 3
Converso de Inteiro
J visto Diviso inteira (do quociente) sucessiva por 2, at que resto seja = 0 ou 1 Binrio = composio do ltimo quociente (Bit Mais Significativo BMS) com restos (primeiro resto bit menos significativo bms)
Em ingls, Most Significant Bit MSB e least significat bit lsb, respectivamente.
Converso de inteiro
1=bms 12 / 2 = 6 (quociente) e resto 0 6 / 2 = 3 (quociente) e resto 0 3 / 2 = 1 (ltimo quociente=BMS) e resto 1 Binrio = BMS ... bms = 1 1 0 0 1
25 / 2 = 12 (quociente) e resto
= 1x24 + 1x24 + 0x22 + 0x21 + 1x20 = 16 + 8 + 0 + 0 + 1 = 25 decimal
hexadecimal
No realizada diretamente no h relao de potncias entre as bases oito e dezesseis. Semelhante converso entre duas bases quaisquer base intermediria (base binria) Converso em duas etapas:
1 - nmero: base octal (hexadecimal) binria. 2 - resultado intermedirio: binria hexadecimal (octal).
Joseana M. Fechine
Converso de frao
Operao inversa: multiplicar parte fracionria por 2 at que parte fracionria do resultado seja 0 (zero) Bits da parte fracionria derivados das partes inteiras das multiplicaes Bit imediatamente direita da vrgula = Parte inteira da primeira multiplicao
Converso de frao
Exemplo: converter 0,625 decimal para binrio 0,625 x 2 = 1,25 logo a primeira casa fracionria
1 ; nova frao (resto) 0,25 (1,25-1=0,25) 0,25 x 2 = 0,5 segunda casa 0 ; resto 0,5 0,5 x 2 = 1,0 terceira casa 1 ; resto zero.
Resultado: 0,62510 = 0,1012
Para converter um nmero com parte inteira e parte fracionria, fazer a converso de cada parte, separadamente.
Exerccios
Mostre que:
a vrgula foi deslocada uma casa para a direita, pois 11,6 = 2 x 5,8 .
Representao pode variar (flutuar) a posio da vrgula, ajustando potncia da base. 0 1 54,32 = 54,32 x 10 = 5,432 x 10 = 0,5432 x 102 = 5432,0 x 10-2
No sistema binrio:
110101 = 110,101x23 = 1,10101x25 = 0,0110101x27 No caso dos nmeros serem armazenados em um computador, os expoentes sero tambm gravados na base dois
Exemplo: 1,10101x(10)101
Algumas definies
OBS:
a base binria no precisa ser explicitada (o computador usa sempre esta) O 1 antes da vrgula, na representao normalizada se esta for adotada, tambm pode ficar implcito, economizando um bit (bit escondido).
Representao genrica
d0,d1d2...dtx(b)exp ,
t o nmero de dgitos da mantissa d1d2...dt = mantissa, com 0 di (b-1) exp = expoente (inteiro com sinal)
OBS:
Armazenamento de floats
Nmero de bits da mantissa (preciso, p) Nmero de bits do expoente Um bit de sinal (0 para + e 1 para -) para o nmero (geralmente o primeiro, da esquerda)
Armazenamento de floats
Ilustrao Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Sinal
Expoente (+/-)
Significando
000 e 111 especiais (ver adiante) 011 (310) = expoente zero 001 e 010 = expoente 2 e 1 (abaixo de zero) 100, 101 e 110 = expoentes 1, 2 e 3 (acima zero) OBS: No podem seguir aritmtica normal!
Armazenamento de floats
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Sinal Expoente (+/-) Significando
0=+ 1=-
Armazenamento de floats
0 110 1111 = + 23 x 1,1111 = 23 x (2- 2-4 ) = 1111,1 = 15,5 decimal 0 001 0000 = + 2-2 x 1,0000 = 2-2 x 20 = 0,01 ou 0,25 decimal
Armazenamento de floats
Significando passa a ser 0,_ _ _ ... Expoente (000) = -2 Menor nmero positivo passa a ser 0 000 0001 = 2-2 x 0,0001 = 2-2 x 2-4 = 2-6 = 0,015625
Armazenamento de floats
Armazenamento de floats
01110000 = + infinito 11110000 = - infinito 11111000 = indeterminao Outras combinaes 11111_ _ _ = Not A Number (NANs)
O padro IEEE 754 para ponto (vrgula) flutuante a representao mais comum para nmeros reais em computadores de hoje, incluindo PC's compatveis com Intel, Macintosh, e a maioria das plataformas Unix/Linux.
O padro (ou norma) IEEE 754 define dois formatos bsicos para os nmeros em ponto flutuante:
Expoente(+/-) Significando 8
[bits30-23] [bits62-52]
1 1
[bit31] [bit63]
23 52
[bits22-00] [bits51-00]
(64 bits)
11
1111 1111
sinal=1 e significando = 0...0 : -infinito sinal=0 e significando = 0...0 : +infinito sinal=1 e significando =10...0: indeterminado c/outras combinaes: NAN
0111 1111 (12710) = expoente zero (bias = polarizao) 0000 0001 = menor expoente = 126 (abaixo de um) 1111 1110 = maior expoente = +127 (acima de um)
OBS: Expoente vale ( Nmero em binrio MENOS 127)
0000 0000
Expoentes na preciso simples c/256 combinaes (0) 0000 0000 (1) 0000 0001 .............. 0111 1100 (125) 0111 1101 (126) 0111 1110 (especial) (2-126) menor expoente (2-2) (2-1)
(128) 1000 0000 (21) (129) 1000 0001 (22) 1000 0010 ............. (254) 1111 1110 (2127) maior expoente (255) 1111 1111 (especial)
No formato (preciso) duplo, o menor expoente representado por 00000000001, valendo -1022, e o maior expoente representado por 11111111110, valendo +1023. Em ambos os casos, o expoente vale o nmero representado em binrio menos 1023 (este o valor da bias = zero).
Expoentes na preciso dupla c/2048 combinaes 00000000000 (especial) 00000000001 (2-1022) menor expoente .............. 01111111100 01111111101 (2-2) (1022) 01111111110 (2-1)
(1023) 01111111111 (20)
(0) (1)
(1024 10000000000 (21) 10000000001 (22) 10000000010 ............. (2046) 11111111110 (21023) maior expoente (2047) 11111111111 (especial)
Normalizado
2-126 a (2-2-23) x 2127 2-1022 a (2-2-52)x21023
Decimal
~10-44.85 a ~1038.53 ~10-323.3 a ~10308.3
Dupla
2-1074 a (1-2-52)x2-1022
Nmero finito de bits na representao (nmero apenas maior na preciso dupla), implica em truncamento (ou arredondamento) do nmero real a ser representado. Truncamento introduz erro na representao. Casos especiais:
maior nmero possvel de ser representado Underflow: nmero a representar menor que menor nmero possvel de ser representado
Supe-se que e esteja dentro dos limites dessa representao (ou ocorreria overflow). Se n no couber no nmero de bits da representao (preciso) do significando, p, haver truncamento, introduzindo erro.
A forma normalizada do nmero N 1,n x 2e Ex: N = 1,101011110100101 x 2e e que p nmero de bits (preciso) do significando seja 4.
A representao de N seria 1,1010 x 2e gerando um ErroN = 0,11110100101 x 2c-4 O erro relativo definido como EN = ErroN / N , ou:
0,11110100101 x 2c-4 / 1,101011110100101 x 2e
Note que EN ser mximo quando o numerador for mximo e o denominador for mnimo, ou seja:
EN (max) = 0,1111111.. x 2-4 / 1,0000000 Lembrando que 0,11111. < 1 , tem-se: EN (max) < 2-4 , onde 4 est representando p, nmero de bits (preciso) do significando.
p,
para representaes
Conhecidos os erros em dois nmeros, possvel determinar o erro de uma operao entre eles, como adio, subtrao, multiplicao e diviso.
Padro IEEE 754 define algoritmo para adio, subtrao, multiplicao, diviso e raiz quadrada e exige que implementaes produzam o(s) mesmo(s) resultado(s).
Igualdade dos bits (resultados) em vrias processadores Transportabilidade de software Vide prximo mdulo
Exerccio Nr. 1
Seja a seguinte representao de nmeros positivos em ponto flutuante:
Bit 7. Sinal do expoente Bit 6. Bit 5 Bit 4 EXPOENTE Bit 3 Bit 2 Bit 1 Bit 0 MANTISSA
Sendo que o expoente representado diretamente pelo respectivo nmero binrio e os nmeros so normalizados pela primeira casa decimal, ou seja 4.5 representado como 0.45 101 ou, em binrio, 100.1 representado por 0.1001 211 o que daria 00111001 na representao acima. 1) Qual o maior e o menor nmero positivo que podem ser representados neste formato? Mostre o resultado em decimal, binrio e na representao interna. 2) Com fica a situao do nmero 0? Sugira uma soluo. 3) Represente, neste formato os nmeros (decimais) 13, 0.12 e 3.501. Em quais nmeros ocorreram erros de representao? 4) Seja a representao 00101000. Ela representa qual nmero? Se eu subtrair 0.1 2 deste nmero, como seria representado o nmero resultante?
Exerccio Nr. 2
1) Repita os itens 3 e 4 do exerccio anterior, agora usando a representao em ponto flutuante de 8 bits vista anteriormente neste documento.
2)
Determine, para ambas as representaes, a densidade dos nmeros maiores que 1, ou seja, a distncia entre dois nmeros subseqentes. SUGESTO: tome a representao de um nmero qualquer some 0.0001 mantissa e calcule a diferena entre estes dois nmeros .