Vous êtes sur la page 1sur 64

Clculo Numrico IEC082

Sistemas de Numerao

Prof. Dr. Raimundo Barreto


rbarreto@icomp.ufam.edu.br

Baseado nas notas de aula do prof. Leandro Galvo

Sumrio
!! Bases numricas !! Representao de nmeros de ponto fixo !! Representao de nmeros de ponto flutuante

Sumrio
!! Bases numricas !! Representao de nmeros de ponto fixo !! Representao de nmeros de ponto flutuante

Sistemas de Numerao
!! Um sistema de numerao formado por um conjunto de smbolos (alfabeto) que utilizado para representar quantidades e por regras que definem a forma de representao. !! definido por sua base, a qual define o nmero de algarismos (ou dgitos) utilizados para representar nmeros.

Sistemas de Numerao
!!Bases mais utilizadas em computao:
"! "! "! "! B=2 B=8 B=10 B=16 binria octal decimal hexadecimal

Sistemas Posicionais
!! O valor atribudo a um algarismo depende da posio em que ele ocupa no nmero. !! No sistema decimal, por exemplo, o smbolo 5 pode representar:
"! o valor 5, como em 25 "! o valor 50, como em 57 (50 + 7) "! o valor 500, como em 523 (500 + 20 + 3)

!! Quanto mais esquerda o smbolo est, mais ele vale (mais significativo).

Sistemas No Posicionais
!!O valor de um smbolo o mesmo, independentemente da posio em que ele se encontra dentro do nmero. !!Sistema de numerao romano.
"! Os smbolos e seus valores so sempre:
!! !! !! !! !! !! !! I!1 V!5 X ! 10 L ! 50 C ! 100 D ! 500 M ! 1000

Sistema de Numerao Genrico na base B


!!Em uma base B genrica, so usados B algarismos (ou dgitos) distintos:
"! "! "! "! "! Base Base Base Base Base 2: 0, 1 4: 0, 1, 2, 3 8: 0, 1, 2, 3, 4, 5, 6, 7 10: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 16: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Introduo
!!Sistema binrio sistema de numerao que utiliza apenas os dgitos 0 e 1. !!BIT Dgito binrio
(contrao das palavras BInary digiT).

!!BYTE Conjunto de 8 bits.

Nmeros Binrios
!!Internamente, o computador s utiliza o sistema binrio. !!Por que (10101)2 igual a (21)10? !!d5.24+ d4.23 + d3.22 + d2.21 + d1.20 !!1.24+ 0.23 + 1.22 + 0.21 + 1.20 !!16 + 0 + 4 + 0 + 1 !!21

Nmeros Binrios
!!EXERCCIOS (1): Converter os seguintes nmeros de binrio para decimal
"! "! "! "! "! (01010101)2 = (?)10 (1010101)2 = (?)10 (011111)2 = (?)10 (111)2 = (?)10 (11101)2 = (?)10

Nmeros Binrios
!!Soma de nmeros binrios. !!101010 + 000111 = ? !!Resposta: 110001.

Nmeros Binrios
!!Subtrao de nmeros binrios. !!101010 - 000111 = ? !!Resposta: 100011.

Nmeros Binrios
!!EXERCCIOS (2): Realizar as seguintes operaes utilizando nmeros de binrios:
"! "! "! "! "! "! 1010101 + 11 10101 + 1011 1111 + 1111 1010101 - 11 10101 - 1011 1111 1111

Exerccio complementar
!!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 humanoide, quantos dedos ele tem nas duas mos?

Exerccio complementar

!!RESPOSTA "! 1710 = 25b "! 17 = 2xb1 + 5xb0 "! 17 = 2b + 5 "! b = (17-5)/2 = 6

Sistema de Numerao Genrico na base B


!!Dada uma base B, quanto vale seu maior dgito? E o menor? !!Resposta:
"! Maior dgito: B-1 "! Menor dgito: 0 (zero)

Converso da base B para a base decimal :: Parte inteira


!!Considere um nmero na base B com:
"! n+1 dgitos na parte inteira (n ! 0)

( N ) B = an an!1 a2 a1a0
!!O valor na base decimal desse nmero obtido da seguinte maneira:

( N )10 = an ! B + an"1 ! B

n "1

+ + a2 ! B + a1 ! B + a0 ! B

Converso da base B para a base decimal :: Parte inteira


!!Exemplo: !!(11001)2 = (?)10
"! = 1*24 + 1*23 + 0*22 + 0*21 +1*20 "! = 16 + 8 + 0 + 0 + 1 "! = 25

!!(4210)5 = (?)10
"! = 4*53 + 2*52 + 1*51 + 0*50 "! = 4*125 + 50 + 5 + 0 "! = 555

Converso da base B para a base decimal :: Parte fracionria


!! Considere um nmero na base B com:
"! n+1 dgitos na parte inteira (n ! 0) "! k dgitos na parte fracionria (k ! 0):

( N ) B = an an!1 a1a0 , a!1a!2 a!k


parte inteira

( N )10 = an " B + an!1 " B


!1

n !1

+ + a1 " B + a0 +
!k

+ a!1 " B + + a!k " B


parte fracionria

Converso da base B para a base decimal


!!Exemplos:
"! "! "! "! "! "! "! "! "! (1011.11)2 = 1"23 + 0"22 + 1"21 + 1"20 + 1"2-1 + 1"2-2 = (11.75)10 (34.2)8 = 3"81 + 4"80 + 2"8-1 = (28.25)10 (FBA)16 = 15"162 + 11"161 + 10"160 = (4026)10

Converso da base B para a base decimal


!!EXERCCIOS (3):
"! (11011.1001)2 = (?)10 "! (34.2)5 = (?)10

Converso da base decimal para a base B


!! necessrio converter separadamente a parte inteira e a parte fracionria e fazer a concatenao dos resultados !!A vrgula continua separando as duas partes na nova base B.

Converso da base decimal para a base B :: Converso da parte inteira


1.! Divide-se o nmero decimal dado e os quocientes sucessivos por B at que o quociente resulte em 0. 2.! O ltimo quociente e todos os restos, tomados no sentido ascendente (de baixo para cima), formaro o nmero na base B.

Converso da base decimal para a base B :: Converso da parte inteira


!! Exemplo: (197)10 " (11000101)2

Converso da base decimal para a base B :: Converso da parte inteira


!! EXERCCIOS (4): "! (33)10 " (?)2 "! (155)10 " (?)2 "! (87)10 " (?)2

Converso da base decimal para a base B :: Converso da parte fracionria


!!Para transformar a parte fracionaria de um nmero decimal para a base B, ela deve ser multiplicada, repetidamente, por B. !!Aps cada multiplicao, o dgito da parte inteira do resultado ser transportado para a parte fracionria da nova base. !!Repete-se o processo com a parte fracionria do resultado, at que:
"! Atinja-se a preciso desejada, ou "! O novo resultado seja igual a zero.

Converso da base decimal para a base B :: Converso da parte fracionria


!! Exemplo: (.4375)10 " (.0111)2

Converso da base decimal para a base B :: Converso da parte fracionria


!! Exemplo: (.060546875)10 " (.0F8)16

Converso da base decimal para a base B !!EXERCCIOS (5): "! (693,8125)10 = (?)2

Erro de arredondamento
!!A preciso da mudana de base de decimal para binrio depende do nmero de bits que representam a parte fracionria. !!Considere uma frao de quatro bits na forma:

0, x!1 x!2 x!3 x!4


!!Ela pode representar um nmero X na base 10:

X = x!1 " 2 + x! 2 " 2 + x!3 " 2 + x! 4 " 2

!1

!2

!3

!4

= 0,5 " x!1 + 0,25 " x!2 + 0,125 " x!3 + 0,0625 " x!4

Erro de arredondamento
!!Considere as seguintes palavras binrias:

X a = 0,1110 X b = 0,1111

X a = 0,8750 X b = 0,9375

!!A frao decimal 0,9270 no pode ser representada de forma exata usando 4 bits. !!Valor binrio mais prximo: Xb = 0,1111. !!De quanto o erro?

Erro de arredondamento
!!Erro de arredondamento:

0,9375 " 0,9270 !100 0,9270

1, 03%

!!A nica maneira de solucionar o problema adicionar mais bits representao binria.

Erro de arredondamento
!!EXERCCIOS (6):
"! Convertendo o valor 0,927 at o QUINTO bit, qual seria o erro na representao binria? "! Convertendo o valor 0,927 at o SEXTO bit, qual seria o erro na representao binria?

Sumrio
!! Bases numricas !! Representao de nmeros de ponto fixo !! Representao de nmeros de ponto flutuante

Representao de nmero de ponto fixo


!!Temos somente os algarismos 0 e 1 para representar todos os nmeros inteiros. !!Inteiros positivos so transformados em binrio:
"! 41 = 0010 1001 "! 1 = 0000 0001 "! 64 = 0100 0000

!!Essa representao de nmeros inteiros em binrio direta e no se preocupa com sinal, nem com formatao dos bits.

Representao de nmero de ponto fixo


!!Como representar inteiros negativos? !!Opo natural:
"! Alocar um bit para guardar o sinal do nmero. "! Opo conhecida como magnitude de sinal.

Ponto fixo :: Magnitude de sinal


!!Bit mais esquerda representa o sinal:
"! 0 ! positivo "! 1 ! negativo

!!Exemplos:
"! +18 = 0001 0010 "! -18 = 1001 0010

!!Problemas:
"! Duas representaes de zero (+0 e -0). "! Deve-se tomar cuidado com o bit de sinal nas operaes aritmticas.

Ponto fixo :: Complemento de dois


!!Nmero negativo assim obtido:
"! Inverte-se os bits do nmero positivo equivalente: "! Soma-se 1 ao nmero invertido:
(-5)dec: 1010 + 1 ! 1011 (5)dec : 0101 ! 1010

!!Mais Exemplos:
"! "! "! "! "! +2 +1 +0 -1 -2 = = = = = 0000 0000 0000 1111 1111 0010 0001 0000 1111 1110

Ponto fixo :: Complemento de dois


!!EXERCCIOS (7): Quais os valores NEGATIVOS binrios, usando a tcnica Complemento de 2, dos seguintes valores em decimal:
"! 10 "! 20 "! 32

Ponto fixo :: Complemento de dois


!!Para encontrar um nmero positivo a partir do seu oposto, procede-se da mesma forma:
"! Inverte-se os bits do nmero negativo equivalente:
(-2)dec : 1110 ! 0001

"! Soma-se 1 ao nmero invertido:


(2)dec: 0001 + 1 ! 0010

!!Por qu?

Ponto fixo :: Complemento de dois


1111 1110 1101 2 3 4 5 1011 1010 1001 6 7 8 1000 +7 0111 1 0000 0 0001 +1 +2 +3 +4 +5 +6 0101 0110 0010 0011

1100

0100

Ponto fixo :: Complemento de dois


!!Benefcios:
"! Uma representao do nmero zero. "! Facilita-se o trabalho aritmtico: a subtrao transformada em duas operaes conhecidas adio e inverso.

Operaes com ponto fixo


!! Adio:
"! Dgitos so somados bit a bit, da direita para a esquerda. "! Carries (vai-um) so passados para o prximo dgito esquerda.

!! Subtrao:
"! Inverte-se o subtraendo e soma-se um (complemento de 2) "! Soma-se o resultado anterior com o diminuendo

Operaes com ponto fixo


!! EXERCCIOS (8): Suponha um computador com 6 bits, calcule as seguintes operaes usando a tcnica Complemento de 2.
"! 111000 + 000111 "! 011111 + 100001 "! 101010 001111 "! 010101 - 000111

Operaes com ponto fixo :: Overflow


!! Situao anormal que ocorre quando o resultado de uma operao no pode ser representado com um dada quantidade de bits, a depender da arquitetura de computador. !! Adio:
"! Quando os sinais dos operandos so iguais, pode ocorrer overflow.

!! Subtrao:
"! Quando os sinais dos operandos so diferentes, pode ocorrer overflow.

Sumrio
!! Bases numricas !! Representao de nmeros de ponto fixo !! Representao de nmeros de ponto flutuante

Ponto flutuante (Padro IEEE 754)


!!Um nmero real pode ser representado no seguinte formato:

(-1)s # m # Be
"! "! "! "! s m B e sinal significando (mantissa) base expoente

Ponto flutuante (Padro IEEE 754) :: Sinal


!! O bit mais esquerda guarda o sinal do nmero:
"! bit = 0 ! nmero positivo "! bit = 1 ! nmero negativo "! No h mais notao de complemento de 2 para o nmero representado!

Ponto flutuante (Padro IEEE 754) :: Frao


!!O significando representado na forma normalizada (base binria): 1.xxxxx E no na forma cientfica: 0.1xxxx !!O significando composto por:
"! Algarismo 1 "! Ponto de separao "! Frao

Ponto flutuante (Padro IEEE 754) :: Frao


!! O algarismo 1 e o ponto de numerao no precisam ser armazenados, pois so os mesmos para todos os nmeros reais representados. !! Caso a frao possua menos bits que o esperado, zeros devem ser colocados direita, pois no tm significncia.

23 bits frao = 1,110011 11001100000000000000000 frao

Ponto flutuante (Padro IEEE 754) :: Base


!!A base B implcita (binria) e no precisa ser guardada, pois a mesma para todos os nmeros representados.

Ponto flutuante (Padro IEEE 754) :: Expoente


!!O expoente representado na notao deslocada, ou excesso de N !!Maior expoente representvel: 2n-1
"! Representado por: 11...11

!!Menor expoente representvel: -(2n-1 - 1)


"! Representado por: 00...00

Ponto flutuante (Padro IEEE 754) :: Notao excesso de N


Decimal +4 +3 +2 +1 0 -1 -2 -3 -4 Complemento de dois -011 010 001 000 111 110 101 100 Notao excesso de N 111 110 101 100 011 010 001 000 --

Ponto flutuante (Padro IEEE 754) :: Notao deslocada


!!Representao do valor zero: 01...11. !!Representao do valor um: 10...00. !!Demais valores: somar ao zero (deslocamento). !!Vantagem: facilita a comparao de expoentes entre nmeros de mesmo sinal.

Ponto flutuante (Padro IEEE 754) :: Notao deslocada


!!EXERCCIOS (9): Suponha um computador de 8 bits.
"! Calcule o valor de +20 na notao deslocada. "! Calcule o valor de -20 na notao deslocada.

Ponto flutuante (Padro IEEE 754)


!!O formato de preciso simples (float) ocupa 32 bits.

1 bit sinal

8 bits expoente

23 bits frao

Ponto flutuante (Padro IEEE 754)


!!O formato de preciso dupla (double) ocupa 64 bits.

1 bit sinal

11 bits expoente

52 bits frao

Ponto flutuante (Padro IEEE 754)


!!Exemplo: (10)bin = +1.0 # 21

1 bit 0 sinal

8 bits 1000 0000 expoente

23 bits 0000 0000 0000 0000 0000 000 frao

Ponto flutuante (Padro IEEE 754)


!!Mais exemplos:

frao em binrio expoente no sinalizado

float

frao em decimal expoente decimal

Ponto flutuante :: Zero


!!Como o zero representado em ponto flutuante?
0 sinal 00000000 expoente 0000000000000000000000 frao + 0 1 sinal 00000000 expoente 0000000000000000000000 frao - 0

Ponto flutuante :: Infinito


!!Notao especial para representar eventos incomuns:
"! permite que os programas possam manipul-los sem que sejam interrompidos. 0 sinal 11111111 expoente 0000000000000000000000 frao

+$

1 sinal

11111111 expoente

0000000000000000000000 frao

-$

Ponto flutuante :: NaN Not a Number


!! uma representao do resultado de operaes invlidas, tais como:
"! "! "! "! "! 0/0 $-$ $/$ 0#$ &x, x < 0

x sinal

11111111 expoente

xxx...xx % 0 frao

Questes

Vous aimerez peut-être aussi