Aritmtica Computacional Srgio Moraes sergiom@pos.ucb.br Sistema de Informao 2o Semestre 2002 Aulas adaptadas do material da prof. Katia Maral 2 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional 3 Plano Notao Posicional bases decimal binria octal hexadecimal Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional
4 Notao Posicional Analogia ao Abaco chins (tinha colunas para unidades, dezenas, centenas, etc.) Os dgitos componentes de um nmero assumem valores diferentes, dependendo de sua posio relativa no nmero Posio do dgito que determina seu valor Formao dos nmeros dependem da quantidade de algarismos diferentes quantidade de algarismos chamado de base
5 Base Decimal Base 10 Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Ex.: (123) 10 = 1 X 10 2 + 2 X 10 1 + 3 X 10 0 (1532 ) 10 = 1 X 10 3 + 5 X 10 2 + 3 X 10 1 + 2 X 10 0
Devemos a ndia o engenhoso mtodo de exprimir todos os nmeros por meio de 10 smbolos, cada qual portador tanto de um valor de posio como de um valor absoluto; inveno notvel, mas to simples, que nem sempre lhe reconhecemos o mrito (Laplace) 6 Usaremos nesse material: - algarismo para referirmos ao conjunto de nmeros/smbolos utilizados em uma base Ex: Base 10 - Algarismos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - dgito para referirmos a cada nmero que forma um nmero maior Ex: 1456 possui 4 dgitos 7 Numerao Posicional N = (d n-1 d n-2 d n-3 ... d 1 d 0 ) onde: d = dgito do nmero n-1, n-2, 1, 0 = posio do algorismo n = nmero de dgitos inteiros b = base de numerao
Nmero N = (d n-1 X b n-1 +d n-2 X b n-2 +
d n-3 X b n-3 ... d 1 X b 1 + d 0 X b 0 ) Valor do Nmero 8 Base Binria Base 2 Algarismos: 0, 1 Ex.: (1011) 2 = (11) 10 (11101) 2 = (29) 10
Base utilizadas pelos computadores eletrnicos Um nmero de X dgitos possui portanto X Bits Ex.: (1011) 2 = 4 bits
(11101) 2 = 5 bits 9 Observaes Nmero mximo de algarismos diferentes ... Quanto menor a base de numerao maior ..
O nmero de produtos e somas a serem realizados igual ...
... igual ao valor da base
... a necessidade de dgitos para indicar um dado valor
... ao nmero de dgitos no nmero 10 Base Octal Base 8 Algarismos: ? Ex.: (16) 8 = (?) 10 (21) 8 = (?) 10
11 Base Hexadecimal Base: 16 Algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Ex.: (1A7B) 16 = (6779) 10
12 Base Hexadecimal Representao dos nmeros na base 10
Ex.: (1A7B) 16 = 1 X 16 3 + 10 X 16 2 + 7 X 16 1 + 11 X 16 0
=(6779) 10
Base 10 Base 16 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 Base 10 Base 16 10 A 11 B 12 C 13 D 14 E 15 F 13 Plano Notao Posicional bases decimal binria octal hexadecimal Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional 14 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional
15 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso de uma base B para a base decimal Converso de uma base decimal para uma base B Converso da base 8 para 2 e vice-versa Converso da base 2 para 16 e vice-versa Converso da base 8 para 16 e vice-versa Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional 16 Converso de uma base B para a base decimal Conforme frmula j definida N = (d n-1 d n-2 d n-3 ... d 1 d 0 ) Nmero N = (d n-1 X b n-1 +d n-2 X b n-2 +
d n-3 X b n-3 ... d 1 X b 1 + d 0 X b 0 ) Valor do Nmero na base 10 onde: d = dgito do nmero n-1, n-2, 1, 0 = posio do dgito n = nmero de dgitos inteiros b = base de numerao 17 Exerccio (22C) 16
(10011001) 2
(421) 8
(1DE) 16
(100100011) 2 (231) 8
= (556) 10
= (153) 10
= (273) 10
= (478) 10
= (291) 10
= (153 ) 10
18 Outra forma de converter base b decimal Muliplique o dgito mais a esquerda pela base b e some o prximo dgito direita Multiplique a soma pela base b e some o prximo dgito Repita o processo at que o dgito mais a direita tenha sido somado Ex: (261) 8
2 X 8 = 16 (16+6) X 8 = 176 176 + 1 = 177
Importante: observe que o ltimo dgito no multiplicado apenas somado 19 Converso de uma base decimal para uma base B Processo inverso da converso da base B para decimal Divises sucessivas pela base B at o quociente ser zero 0 resto da ltima diviso representa o dgito mais a esquerda do nmero O resto da diviso anterior o prximo dgito, a assim sucessivamente 20 Converso de uma base decimal para uma base B 133 2 66 13 1 2 33 0
2 16 13 1 2 8 0
2 4 0
2 2 0
2 1 0
2 0 1
(133) 10 = (?) 2
(10000101) 2 21 Exerccio (216) 10
(917) 10
(97) 10
(681) 10
(27) 10
(625) 10
(330) 8
(1625) 8
(61) 16
(2A9) 16
(11011) 2
(1001110001) 2
22 Converso da base 2 para base 8 Divide o nmero da direita para a esquerda em grupos de 3 bits (8=2 3 ) Se o ltimo grupo no um mltiplo de 3 preenche- se com zeros esquerda Para cada grupo achar o nmero octal correspondente
Ex: (10100111) 2 = 010 100 111 2 4 7 (247) 8
23 Converso da base 8 para base 2 Semelhante a de 2 para a base 8 no sentido inverso Substitui cada algarismo octal pelos 3 bits correspondentes
Ex: (627) 8
6 2 7 110 010 111 (110010111) 2
24 Converso da base 2 para base 16 Idntico a converso da base 2 para 8 considerando 4 bits (16 = 2 4 ) Divide o nmero da direita para a esquerda em grupos de 4 bits Se o ltimo grupo no um mltiplo de 4 preenche- se com zeros esquerda Para cada grupo achar o nmero hexadecimal correspondente Ex: (101111) 2
0010 1111 2 F (2F) 16 25 Converso da base 16 para base 2 Substitui cada algarismo hexadecimal pelos 4 bits correspondentes
Ex: A2 10 2 1010 0010 (10100010) 2
26 Converso da base 8 para base 16 Primeiro converte de 8 para 2 Com o resultado em binrio, converte-se para 16
30 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso de uma base B para a base decimal Converso de uma base decimal para uma base B Converso da base 8 para 2 e vice-versa Converso da base 2 para 16 e vice-versa Converso da base 8 para 16 e vice-versa Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional 31 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional 32 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional 33 Converso de Nmeros Fracionrios Separa a parte inteira e converte como explicado anteriormente
a parte fracionria (0,XXX) ento convertida
combina os resultados: parte inteira convertida X parte fracionria convertida 34 Converso de uma base B para a base decimal N = (0, d -1 d -2 d -3 ... D -m ) Nmero N = (d -1 X b -1 +d -2 X b -2 +
d -3 X b -3 ... D -m X b -m ) Valor do Nmero na base 10 onde: d = dgito do nmero m = quantidade de dgitos da parte fracionria b = base de numerao -1, -2, ...-m=posio do dgito
36 Converso de uma base decimal para base B Multiplica a parte fracionria pela base b o valor resultante composto de um nmero com parte inteira e outra fracionria a parte inteira o primeiro dgito aps a vrgula (dgito d -1 ) a parte fracionria ser novamente multiplicada obtendo o novo resultado. Separa a parte inteira que corresponde ao prximo algarismo repetir o processo at se conseguir a preciso desejada (ou seja, a quantidade desejada de algarismos significativos determina o numero de operaes 37 0,8125 X 2 = 1,625 0,625 X 2 = 1,25 0, 25 X 2 = 0,5 0,5 X 2 = 1,0
= (0.1101) 2
Exemplos 0,37 X 8 = 2,96 0,96 X 8 = 7,68 0, 68 X 8 = 5,44 0,44 X 8 = 3,52 0,52 X 8 = 4,16
= (0,27534) 8
5 dgitos de preciso ==> 5 operaes de multiplicao
38 Exerccio (11,1101) 2
(1,111) 2
(0, 22) 8
(12,01) 8
(32,22) 10 (para base 8 preciso 3) (0,71) 10 (para base 8 preciso 4) (0, 31) 10 (para a base 2 preciso 5) (20,125 ) 10 (para a base 2)
= (3,8125) 10
= (1,875) 10
= (0,28125) 10
= (10,015625) 10
= (40,160) 8
= (0,5534) 8
= (0,01001) 2 = (10100,001) 2
39 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional 40 Plano Notao Posicional Converso entre bases numricas (nmeros inteiros) Converso entre bases numricas (nmeros fracionrios) Aritmtica Computacional Aritmtica binria Aritmtica octal Aritmtica hexadecimal
41 Aritmtica Binria Operaes semelhante a operao decimal Soma: 0 + 0 = 0 1 + 0 = 1 1 + 1 = 0 com vai 1
43 Aritmtica Binria Subtrao: 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = no possvel, logo retira-se 1unidade da ordem a esquerda e passa-se a ordem direita como 2 (visto que 1 unidade da ordem esquerda vale uma base de unidades (no caso 2) da ordem a direita (nesse caso 2 - 1 = 1) Ex: 1010 - 111 11
45 Aritmtica Octal Semelhante a forma binria Soma: o vai 1 ocorre quando a soma de dois algarismos for maior ou igual ao valor da base (no caso, 8) 1 + 7 = 0 com vai 1 5 + 6 = 11 - 8 = 3 com vai 1 Ex: 51 + 267 340 46 Exerccio (base 8) 327 + 166 27 + 11 752 + 536
= 515 = 40 = 1510
47 Aritmtica Octal Semelhante a forma binria Subtrao: quando no possvel a operao, retira-se 1 unidade da ordem a esquerda e passa-se a ordem direita como 8 (visto que 1 unidade da ordem esquerda vale uma base de unidades) somando-se ao valor que existe na posio
Ex: 511 - 327 162
48 Exerccio (base 8) 156 - 17 51 - 26 612 - 66
= 137 = 23 = 524
49 Aritimtica Hexadecimal Semelhante a qualquer nmero Soma: o vai 1 ocorre quando a soma de dois algarismos for maior ou igual ao valor da base (no caso, 16) 1 + F = 0 com vai 1 8 + A = 18 - 16 = 2 com vai 1 Ex: 9A + A1E AB8
50 Exerccio (base 16) 1A + C 10A + FD 69+18
= 26 = 207 = 81
51 Subtrao Hexadecimal Semelhante a qualquer nmero Subtrao: quando no possvel a operao, retira-se 1 unidade da ordem a esquerda e passa-se a ordem direita como 16 (visto que 1 unidade da ordem esquerda vale uma base de unidades) somando-se ao valor que existe na posio
= 189 = 8F = 776 53 Multiplicao Binria Semelhante aos nmeros decimais soma sucessiva de um nmero quantas vezes for o valor do do outro operao de multiplicao normal: 0 X 0 = 0 0 X 1 = 0 1 X 1 = 1 Ex:
1011 x 101 1011 0000 1011__ 110111 54 Diviso Binria Semelhante aos nmeros decimais operao de multiplicao normal: 0 / 1 = 0 1 / 1 = 1 Ex: