Sie sind auf Seite 1von 13

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

2. Sistemas de Numerao
2.1. Introduo A necessidade de contar algo que acompanha o ser humano desde tempos imemoriais. Muitas cavernas pr-histricas registram contagens, provavelmente de animais, na forma de pauzinhos colocados um ao lado do outro, e agrupados por traos diagonais, para melhorar a leitura, como na Figura 2.1.

Figura 2.1

Diversas formas de contar e representar nmeros foram inventadas e efetivamente utilizadas por muitos povos. Quando crianas, ns aprendemos a contar nos dedos das duas mos, de um at dez, e isso nos parece a coisa mais natural do mundo. Porm muitos povos da antiguidade contavam usando uma outra ttica, mais eficiente do que a nossa, provavelmente, com uma mo s: eles usavam o polegar para indicar em cada dedo a falange, falanginha e falangeta, e assim, cada dedo podia contar 3 nmeros, possibilitando a contagem de 12 nmeros em cada mo (3 x 4, tirando o polegar obviamente, que era usado para apontar), como visto na Figura 2.2.

Figura 2.2

Atualizado em 28/5/2004 17:38

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

Tanto naqueles povos antigos quanto no mundo de hoje, a contagem de pequenas quantidades poderia facilmente ser feita com uma ou duas mos. Porm quando essa quantidade aumenta, necessrio usar alguma outra ttica. Muitas possibilidades existem para manipular nmeros maiores. Para levarmos uma quantidade razovel de dinheiro, ns hoje usamos notas de diferentes valores, de um real, cinco reais, dez, cinqenta, cem, etc., , ao invs de uma montanha de notas de um real. De forma muito parecida, os romanos faziam mais ou menos isso, usando as letras I, V, X, L, C, etc. para registrar os nmeros grandes. A representao de um certo valor em notas de dinheiro no unvoca, como a notao romana tambm no o era. Seria possvel, por exemplo, representar XXXXXX para o nmero 60 mas na prtica se preferia-se a notao LX, mas assim como ns geralmente preferimos uma nota de 50 e outra de 10 e no seis notas de 10. No havia na notao romana a representao explcita do zero, e a necessidade do uso do zero apareceu um bom tempo depois. Explicando melhor: pense que s existam as notas de dinheiro de 1, 10 e 100 reais. Para representar o valor 372, poderamos dizer: 3 notas de 100, 7 notas de 10 e 2 notas de 1. J para representar o valor 302, poderamos dizer 3 notas de 100, ZERO notas de 10 e 2 notas de 1. Essa informao de ZERO notas de 10 incua, e realmente no se usa na prtica, como os romanos tambm no usavam nos seus nmeros. Tanto os romanos quanto ns hoje usamos fortemente o nmero 10 como um padro importante na representao da contagem (na verdade os romanos tambm usavam o nmero 5). Isso fcil de aceitar: temos 10 dedos (ou 5 dedos em cada mo). Mas os babilnios contavam 12 em cada mo, e no 10. Ento deve-se esperar que usassem nmeros diferentes. Por exemplo, um mercador contava 1, 2, 3, 4 ...12 (acabavam os dedos da mo) e continuava contando: uma mo mais 1, uma mo mais 2, uma mo mais 3, etc. No registro escrito usado na babilnia usavam-se dois smbolos numricos um ao lado do outro. O primeiro indicava a quantidade de mos, o segundo a quantidade de dedos no fim da contagem. Por razes que no vale a pena explicar neste contexto, a contagem bsica ia at 60 (5 dedos numa mo e 12 falanges na outra). Ainda hoje temos herana da contagem babilnica nos nossos relgios, que contam 12 horas e no 10. Nota: Deve-se notar que o uso da contagem at 60 muito interessante: este nmero mltiplo de 2, 3, 4, 5 e 6 (alm de outros), trazendo simplicidade para as operaes aritmticas envolvendo diviso, quando realizadas mentalmente. Uma inveno bastante interessante apareceu com os hindus por volta do sculo V e consistia no uso, lado a lado de dgitos, representando valores multiplicativos. Por exemplo, imaginemos notas de 1, 10 e 100 reais. Ento, podemos pensar assim: 3 notas de 100 reais, 7 notas de 10 reais e 2 notas de 1 real. Ento no usamos o valor das notas e colocamos apenas a quantidade de bilhetes. Usamos a escrita da esquerda para a direita na ordem decrescente dos valores dos bilhetes, assim: 3 7 2. A prpria forma de falar este nmero uma imagem desta representao: trezentos (ou trs centos) e setenta (ou sete entes) e dois. Nesta representao, originalmente se deixava um espao (e no um zero) para indicar que numa casa especfica no existia um fator multiplicativo. Por exemplo, se escrevia 3_2 para representar o nmero 302. O smbolo zero foi inventado para facilitar a leitura Atualizado em 28/5/2004 17:38

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

deste espao. O zero um smbolo que, ao ser multiplicado por qualquer outro produz um resultado nulo. Zero reais, ou zero dezenas (ou seja zero vezes 10), ou zero centenas (ou seja zero vezes cem), tudo produz um valor nulo. Nota: Fatores religiosos foram usados para proibir durante muitos anos o uso do zero. A razo parece estranha, mas do ponto de vista teolgico extremamente vlida. Deus representado religiosamente como sendo o UM, a unidade, o incio de tudo; ento como poderia existir uma coisa que vem antes do UM? Esta polmica religiosa prosseguiu durante mais de um sculo, at que as vantagens inequvocas do uso matemtico do zero acabaram por tornar esta discusso menos aceitvel. Note que seria possvel usar quaisquer valores para notas de dinheiro, mas os registros histricos mostram que essa inveno usava necessariamente em operaes matemticas, valores mltiplos para as casas representadas: 1, 10, 100, 1000, etc. Esses valores fundamentais para as casas denominado em matemtica de BASE do sistema de numerao posicional. Mas porque usamos base 10? Claro, temos 10 dedos. Mas os babilnios usavam a base 10? Certamente no. Pense a respeito e faa uma pesquisa sobre como eles provavelmente faziam para escrever seus nmeros. Nota: E se fssemos habitantes de Andrmeda, que tm 6 dedos em cada uma das suas 2 mos, como contaramos? E se fssemos habitantes de Alfa Centauro, que tm 8 dedos em cada uma das suas 4 mos, como faramos? Leia mais sobre a interessante histria http://www.mediatinker.com/whirl/zero/zero.html 2.2. Representao posicional de nmeros Com a evoluo da matemtica a numerao posicional se estabeleceu em praticamente todos os pases. Nesta notao, os algarismos (dgitos) so colocados lado a lado, e sua posio indica uma potncia da base pela qual eles sero multiplicados. Na base 10 (ou seja usando o sistema de numerao que conhecemos desde o curso primrio, e que faz uso dos dgitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9), um nmero representado como no exemplo a seguir: dos sistemas de numerao em

ou seja:

Atualizado em 28/5/2004 17:38

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

10 a base e os nmeros 100, 10 e 1 so respectivamente:

100 = 102 10 = 101 1 = 100


Nota: talvez voc tenha esquecido, ento lembre-se: todo nmero elevado a zero vale um. 372 = 3 x 102 + 7 x 101 + 2 x 100 A operao de contagem na base 10 simples. Cada casa comea com 0, e quando se chega a 9 a prxima casa incrementada. Por simplicidade, zeros esquerda no precisam ser escritos. Por exemplo, usando 3 dgitos:

e assim por diante. Quando se atinge 99 comea-se a contar novamente, considerando mais um dgito igual a 1, ou seja 100, 101, 102, etc... A mesma coisa acontece em 999 ou 9999 ou 99999. Na vida diria de hoje, em quase todos os pases do mundo, a base 10 a campe absoluta. Entretanto poderamos efetivamente usar outras bases (diversos povos muito evoludos, como os babilnios, usaram bases no decimais). Imagine por exemplo escolhermos usar a base 5 (ou seja, contar apenas com uma das mos). Neste sistema de numerao existiriam 5 dgitos bsicos: 0, 1, 2, 3 e 4. Vamos ento contar, usando apenas esses dgitos:

Atualizado em 28/5/2004 17:38

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

e assim por diante. Repare que no existe nesta base 5 o nmero 5, bem como nenhum numero formado por dgitos diferentes de 0, 1, 2, 3 ou 4. Poderamos tentar estabelecer um paralelo entre a base 5 e a base 10. Para no nos confundirmos vamos colocar um subscrito aps o nmero para diferenciar, por exemplo 1310 indica um nmero 13 decimal usual, e 135 indica um nmero na base 5. Se contarmos na base 5, teremos a seguinte seqncia: 0, 1, 2, 3, ,4, 10, 11, 12, 13, 14, 20, 21, etc., portanto o nmero 135 ser o oitavo nmero contado. Podemos dizer ento que: 135 = 810 Veremos mais adiante algumas tcnicas bastante simples sobre como converter nmeros representados em diversas bases. 2.3. Numerao binria A base 10 era usada tambm nos primeiros computadores eletromecnicos, como o Mark I. Diversos matemticos e engenheiros estavam naquela poca envolvidos com a criao de computadores e seus programas, mas logo estes cientistas perceberam que os circuitos eltricos que eram usados para implementar operaes aritmticas eram bastante complexos exatamente pelo fato de que a base 10 usa 10 representaes diferentes para os dgitos. Passou-se ento a utilizar um esquema alternativo muito mais confivel eletricamente e mais econmico usando, no 10 dgitos, mas apenas dois dgitos, o zero e o um (em outras palavras, passou-se a usar a base 2). fcil entender o porqu disso: o zero poderia ser facilmente associado a um circuito eltrico desligado e o um a um circuito ligado: isso muito mais simples de implementar, por exemplo, do que um circuito que tenha internamente diversos (10) nveis de tenso. Nesta base a contagem dos nmeros seria assim: 0 1 D facilmente para estabelecer que: 10 11 100 110 1000 101 111 ...

Atualizado em 28/5/2004 17:38

Organizao de Computadores 02 = 010 12 = 110 102 = 210 112 = 310 1002 = 410 1012 = 510

Antnio Borges / Gabriel P. Silva

e assim por diante. Algum poderia objetar que um nmero binrio relativamente pequeno teria muitos dgitos se comparado sua contraparte na base 10. Realmente: 11111111112 = 102310 mas a simplicidade e tamanho dos circuitos imensamente menor e compensa essa diferena. 2.4. A base hexadecimal Existe, entretanto, um problema: quando ns, seres humanos, queremos exprimir um nmero na base 2, tambm chamada base binria, a possibilidade de transcrio com erro imensa pois os nmeros tm muitos dgitos. Assim, comum que ns, programadores, utilizemos duas outras bases alternativas, cuja converso para a base 2 quase imediata e pode ser feita sem calculadora, como veremos adiante: a base 8 (hoje em desuso) e a base 16, tambm chamada base hexadecimal. Veremos mais adiante como essas bases so usadas para a escrita simplificada e alternativa de nmeros binrios. Talvez voc nem acredite nisso, mas faclimo converter de cabea: 34142578 = 0111000011000101011112 Todas as linguagens de programao moderna prevem facilidades para escrita de nmeros hexadecimais (e algumas, como a linguagem C, tambm para a base 8). A disponibilidade de uso de uma base no decimal poderia causar um certo espanto a princpio, mas a razo simples: essas bases so usadas para tornar a escrita de nmeros binrios por seres humanos, mais simples e menos sujeita a erro. Na base 8 existiriam 8 dgitos bsicos: 0, 1, 2, 3, 4, 5, 6 e 7. Vamos ento contar, usando apenas esses dgitos:

e assim por diante. Atualizado em 28/5/2004 17:38

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

Repare que no existe nesta base 8 o dgito 8, e que s existem nmeros formados por dgitos entre 0 e 7. Depois do nmero 778 vem o nmero 1008. J na base 16 temos um problema: existiro 16 smbolos diferente. Entretanto, desde a escola primria, estamos acostumados a usar apenas 10 dgitos (de 0 a 9). Como fazer para representar os seis dgitos que faltam? A soluo mais usada, especialmente para no ter que inventar novos smbolos usar as letras A, B, C, D, E e F para representar estes novos dgitos. A contagem ento seria assim:

e assim por diante. Depois do AF vem B0, B1,... BF. Depois do BF vem C0, C1.... CF. etc. Depois do EF vem F0, F1.... FF. Depois do FF vem 100, 101, 102 etc. importante guardar de cabea, por conta das converses que teremos que realizar, uma equivalncia entre as letras da representao hexadecimal e seus valores absolutos de representao na base 10. A vale 10 B vale 11 C vale 12 D vale 13 E vale 14 F vale 15

Atualizado em 28/5/2004 17:38

Organizao de Computadores 2.5. Converso entre bases

Antnio Borges / Gabriel P. Silva

Existem motivaes (sejam histricas, de costume ou eletrnicas.) para escolhermos usar uma certa base na representao dos nmeros em determinadas situaes. Nosso relgio apresenta as informaes na bases 12 e 60, por razes completamente histricas, e isso em geral no nos traz maiores complicaes (a menos que queiramos saber, por exemplo, quantas horas e minutos leva para assar 10 bolos num forno, sendo que cada um leva 6 minutos e 30 segundos para assar). Um outro exemplo, na memria dos computadores modernos a informao est armazenada na base 2, e a motivao o fato de que essa escolha simplifica enormemente os circuitos eletrnicos e permite que estes sejam mais rpidos. Entretanto, ns fomos educados na base 10, e nesta base que conseguimos raciocinar com clareza. Vamos ensinar as tcnicas simples que so usadas para converter nmeros para bases diversas, enfatizando: a base 10 que ns conhecemos muito bem; a base 2 til no projeto e programao dos computadores atuais; as bases que so potncia de 2, em especial a base 16 - muito usadas como uma alternativa para representar nmeros binrios de uma forma mais simples. a) Converso de um nmero em qualquer base para a base 10 Ns mostramos anteriormente a representao de um nmero decimal comum, 372, como seria representado como uma soma de mltiplos de potncias de dez:

ou seja: 37210 = 3 x 100 + 7 x 10 + 2 x 1 ou ainda: 37210 = 3 x 102 + 7 x 101 + 2 x 100 Ento por analogia podemos tomar um outro nmero em outra base qualquer, e aplicar o mesmo raciocnio. Por exemplo: o nmero 1428 seria calculado usando potncias de 8, em vez de potncias de 10. 1428 = 1 x 82 + 4 x 81 + 2 x 80 ou seja:

Atualizado em 28/5/2004 17:38

Organizao de Computadores 1428 = 1 x 64 + 4 x 8 + 2 x 1 1428 = 64 + 32 + 2 = 9810

Antnio Borges / Gabriel P. Silva

Outro exemplo, usando a base 2: repare que o ltimo fator multiplicativo, o da direita, ser sempre elevado a zero. E qualquer coisa elevada a zero NO D ZERO, cuidado, d UM ! 10012 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8 + 0 + 0 + 1 = 910 Outro exemplo usando a base hexadecimal: 1C7A16 = 1 x 163 + C x 162 + 7 x 161 + A x 160 Antes de mais nada: lembre-se que, em hexadecimal: A vale 10 C vale 12 1C7A16 = 1 x 163 + 12 x 162 + 7 x 161 + 10 x 160 1C7A16 = 4096 + 3072 + 112 + 10 = 7290 b) converso de um nmero na base 10 para qualquer base Para converter um nmero na base 10 para uma base B, a idia fazer divises sucessivas do nmero pela base B, at o quociente ser zero. Ento tomar os restos em ordem inversa. Exemplo: queremos calcular a representao do nmero 10310 na base 5. Vamos dividir sucessivamente 100 por 5. 103 5 = 20 resto 3 20 5 = 4 resto 0 4 5 = 0 resto 4 Agora lemos os restos de trs para diante: Conferindo: 4 x 52 + 0 x 51 + 3 x 50 = 100 + 0 + 3 = 10310 A maior parte das pessoas faz isso na mo fazendo uma escadinha de divises, parando quando no der mais para dividir. Neste caso no esquecer de pegar tambm o ltimo quociente e juntar com os restos, em ordem reversa (ou ento fingir uma ltima diviso em que o ltimo quociente seja zero). Atualizado em 28/5/2004 17:38 10010 = 4035

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

Lemos ltimo quociente e os restos de trs para diante: Ex: converter 32710 para a base 2.

10010 = 4035

32710 = 1010001112 Ex.: converter 30010 para a base 16 (hexadecimal) O problema resolvido exatamente da mesma maneira, lembrando-se de traduzir, sempre que o resto for maior que 9 pelas letras A, B, C, D, E ou F. 300 16 = 18 resto 12 12 vale C 18 16 = 1 resto 2 1 16 = 0 resto 1 portanto 30010 = 12C16

Atualizado em 28/5/2004 17:38

Organizao de Computadores

Antnio Borges / Gabriel P. Silva

c) converso de nmeros em bases potncia de dois para a base binria Para entendermos a idia desta converso, fizemos uma contagem seqencial usando a base 8. Do lado desta contagem colocamos a representao em binrio, usando 5 dgitos binrios. S para facilitar a leitura usamos um espacinho separando os trs dgitos binrios da direita.

00 01 02 03 04 05 06 07

00 00 00 00 00 00 00 00

000 001 010 011 100 101 110 111

10 11 12 13 14 15 16 17

01 01 01 01 01 01 01 01

000 001 010 011 100 101 110 111

20 21 22 23 24 25 26 27

10 10 10 10 10 10 10 10

000 001 010 011 100 101 110 111

30 31 32 33 34 35 36 37

11 11 11 11 11 11 11 11

000 001 010 011 100 101 110 111

Repare agora: Os nmeros binrios comeam sempre; Na primeira coluna, por 00 0 em decimal Na segunda coluna, por 01 1 em decimal Na terceira coluna, por 10 2 em decimal Na quarta coluna, por 11 3 em decimal Existe uma repetio na parte direita dos dgitos binrios, em todas as colunas. Com um pouco de imaginao ento voc chegar a uma regra muito simples: para converter um nmero numa base potncia de dois para a base 2, simplesmente escreva individualmente os dgitos do nmero na 2, com um nmero de casas igual potncia de dois! Ex.: Base 8 8 2 elevado a 3, ento 4168 = vale quanto na base 2? Pode-se escrever assim: 4 escrito em binrio com 3 casas 1 escrito em binrio com 3 casas 6 escrito em binrio com 3 casas ou seja 4168 = 1000011102 Para no nos enganarmos, interessante escrever a tabelinha completa de converso da base, por exemplo, na base 8, seria assim: Atualizado em 28/5/2004 17:38 100 001 110

Organizao de Computadores 0 1 2 3 4 5 6 7 Ex.: escrever o nmero 3CF116 na base 2. 000 001 010 011 100 101 110 111

Antnio Borges / Gabriel P. Silva

Antes de mais nada, para no nos enganarmos, vamos escrever a tabelinha de contagem da base 16. 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Atualizado em 28/5/2004 17:38

Organizao de Computadores Agora converta automaticamente:

Antnio Borges / Gabriel P. Silva

3CF116 = 0001 1100 FFFF 0001 Nota: deixei estes espaos em branco no meio do nmero binrio que teria na verdade 16 dgitos coladinhos, s para ficar mais fcil a leitura, e para voc conseguir perceber claramente que usei os nmeros da tabela. Uma dica para decorar a tabelinha da base 16: Decore apenas a tabelinha de converso binria da base 8. Para escrever a tabelinha da base 16, escreva esta tabelinha binria duas vezes em duas colunas, como mostrado aqui, colocando um dgito zero antes dos nmeros binrios da primeira coluna e o dgito 1 na segunda coluna. d) converso genrica entre quaisquer bases Para converter entre uma base B1 e outra base B2 genricas, a tcnica mais usada a seguinte: faa em dois passos. Converta o nmero na base B1 para a base 10; Depois converta este novo nmero na base 10 para a base B2.

Exemplo: Converter 3178 para a base 5. Primeiro converta 3178 para a base 10 3178 = 3 x 82 + 1 x 81 + 8 x 80 = 20710 Agora converta 20710 para a base 5 207 5 = 41 resto 2 41 5 = 8 resto 1 8 5 = 1 resto 3 1 5 = 0 resto 1 ento: 3178 = 20710 = 13125

Das könnte Ihnen auch gefallen