Apostila_1_Sistemas_de_Numeração

Embed Size (px)

Citation preview

Apostila 1: Sistemas de numeraoDisciplina: Arquitetura e Organizao de Computadores Professor: Cesar Akira Yokomizo Contato: [email protected] Data: 09.05.2009 (ltima atualizao)

Sistemas de numerao Um numeral um smbolo, ou grupo de smbolos, que representa um nmero. Tem-se que, em uma determinada escrita ou poca, os numerais diferenciaram-se dos nmeros do mesmo modo que as palavras diferenciaram-se das coisas a que se referem. Os smbolos 11, onze e XI (onze em latim) so numerais diferentes, representativos do mesmo nmero, apenas escritos em idiomas e pocas diferentes. Um sistema de numerao (ou sistema numeral) um sistema em que um conjunto de nmeros representado por numerais de uma forma consistente. Pode ser visto como o contexto que permite ao numeral 11 ser interpretado como o numeral romano para dois, o numeral binrio para trs ou o numeral decimal para onze. Em condies ideais, um sistema de numerao deve: Representar uma grande quantidade de nmeros teis (exemplo: todos os nmeros inteiros, ou todos os nmeros reais); Dar a cada nmero representado uma nica descrio (ou pelo menos uma representao padro); e Refletir as estruturas algbricas e aritmticas dos nmeros. Por exemplo, a representao comum decimal dos nmeros inteiros fornece a cada nmero inteiro uma representao nica como uma seqncia finita de algarismos, com as operaes aritmticas (adio, subtrao, multiplicao e diviso) estando presentes como os algoritmos padres da aritmtica. Contudo, quando a representao decimal usada para os nmeros racionais ou para os nmeros reais, a representao deixa de ser padronizada: muitos nmeros racionais tm dois tipos de numerais, um padro que tem fim (por exemplo 2,31), e outro que se repete periodicamente (como 2,30999999...).

Sistema decimal O sistema decimal um sistema de numerao que utiliza a base dez e se baseia em uma numerao em que os dez algarismos indo-arbicos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9 servem a contar unidades, dezenas, centenas etc. da direita para a esquerda. Contrariamente numerao romana, o algarismo rabe tem um valor diferente segundo sua posio no nmero: assim, em 111, o primeiro algarismo significa 100, o segundo algarismo 10 e o terceiro 1, enquanto que em VIII (oito em numerao romana) os trs I significam todos 1. Assim:

No sistema decimal, o smbolo 0 (zero) posicionado esquerda do nmero escrito no altera seu valor representativo. Assim: 1; 01; 001 ou 0001 representam a mesma grandeza, neste caso, a unidade. O smbolo zero posto direita implica multiplicar a grandeza pela base, ou seja, por 10 (dez). Alguns historiadores supem que o sistema foi adotado pelo homem primitivo por compatibilidade com o nmero de dedos das mos, artifcio usado no princpio para contar as coisas do mundo, como seus bens, rebanho e dinheiro. O sistema base 10 competiu, para se tornar o sistema padro, durante uma fase longa da histria da humanidade com o sistema de numerao base 60, cujos resqucios ainda so vistos no sistema de diviso do tempo, 1 minuto de sessenta segundos e 1 hora de sessenta minutos, e na trigonometria, onde o crculo dividido em 360 graus (6 60). O sistema baseado em 60 (sistema sexagesimal) interessante porque 60 divisvel por 2, 3, 4, 5, 6, 10, 12, 15, 20 e 30, enquanto que 10 divisvel somente por 2 e 5. O maior nmero de divisores torna o sistema em base 60 muito mais prtico para a diviso de grandezas (pesos, medidas etc).

Sistema binrio O sistema binrio um sistema de numerao posicional em que todas as quantidades se representam com base em dois nmeros, com o que se dispe das cifras: zero e um (0 e 1). Os computadores digitais trabalham internamente com dois nveis de tenso, pelo que o seu sistema de numerao natural o sistema binrio (aceso, apagado). Com efeito, em um sistema simples como este possvel simplificar o clculo, com o auxlio da lgica booleana. Em computao, chama-se um dgito binrio (0 ou 1) de bit, que vem do ingls Binary Digit. Um agrupamento de 8 bits corresponde a um byte (Binary Term). Um agrupamento de 4 bits chamado de nibble. O sistema binrio base para a lgebra booleana (de George Boole matemtico ingls), que permite fazer operaes lgicas e aritmticas usando-se apenas dois dgitos ou dois estados (sim e no, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado). Toda eletrnica digital e a computao esto baseadas nesse sistema binrio e na lgica de Boole, que permite representar por circuitos eletrnicos digitais (portas lgicas) os nmeros, caracteres, realizar operaes lgicas e aritmticas. Os programas de computadores so codificados sob forma binria e armazenados nas mdias (memrias, discos etc) sob esse formato. O matemtico indiano Pingala apresentou a primeira descrio conhecida de um sistema numrico binrio no sculo III a.C. Um conjunto de 8 trigramas e 64 hexagramas, anlogos a nmeros binrios com preciso de 3 e 6 bits, foram utilizados pelos antigos chineses no texto clssico I Ching. Conjuntos similares de combinaes binrias foram utilizados em sistemas africanos de adivinhao tais como o If, bem como na Geomancia do medievo ocidental. Uma sistematizao binria dos hexagramas do I Ching, representando a seqncia decimal de 0 a 63, e um mtodo para gerar tais seqncias, foi desenvolvida pelo filsofo e estudioso Shao Yong no sculo XI. Entretanto, no h evidncias de que Shao Wong chegou aritmtica binria. O sistema numrico binrio moderno foi documentado de forma abrangente por Gottfried Leibniz no sculo XVIII em seu artigo Explication de l'Arithmtique Binaire. O sistema de Leibniz utilizou 0 e 1, tal como o sistema numrico binrio corrente nos dias de hoje.

Em 1854, o matemtico britnico George Boole publicou um artigo fundamental detalhando um sistema lgico que se tornaria conhecido como lgebra Booleana. Seu sistema lgico tornou-se essencial para o desenvolvimento do sistema binrio, particularmente sua aplicao a circuitos eletrnicos. Em 1937, Claude Shannon produziu sua tese no MIT que implementava lgebra Booleana e aritmtica binria utilizando circuitos eltricos pela primeira vez na histria. Intitulado A Symbolic Analysis of Relay and Switching Circuits, a tese de Shannon praticamente fundou o projeto de circuitos digitais.

Sistema Octal Sistema Octal um sistema de numerao cuja base 8, ou seja, utiliza 8 smbolos para a representao de quantidade. No ocidente, estes smbolos so os algarismos arbicos: 0, 1, 2, 3, 4, 5, 6 e 7. O octal foi muito utilizado em informtica como uma alternativa mais compacta ao binrio na programao em linguagem de mquina. Hoje, o sistema hexadecimal mais utilizado como alternativa ao binrio. Este sistema tambm um sistema posicional e a posio de seus algarismos determinada em relao vrgula decimal. Caso isso no ocorra, supe-se implicitamente colocada direita do nmero. A aritmtica desse sistema semelhante a dos sistemas decimal e binrio, o motivo pelo qual no ser apresentada.

Sistema Hexadecimal O sistema hexadecimal um sistema de numerao posicional que representa os nmeros em base 16 portanto empregando 16 smbolos. Est vinculado informtica, pois os computadores costumam utilizar o byte ou octeto como unidade bsica da memria; e, devido a um byte representar 28 = 256 valores possveis, e isto poder representar-se como , o que, segundo o teorema geral da numerao posicional, equivale ao nmero em base 16 10016, dois dgitos hexadecimais correspondem exatamente permitem representar a mesma linha de inteiros a um byte. Isso o torna muito til para a visualizao de vertidos de memria j que permite saber de imediato o valor de cada byte da memria. Devido ao sistema decimal geralmente usado para a numerao apenas dispor de dez smbolos, deve-se incluir seis letras adicionais para completar o sistema. O conjunto de smbolos fica, portanto, assim: Ter-se- de notar que A16 = 1010, B16 = 1110 e assim sucessivamente. Tambm so usadas variedades com letras minsculas no lugar de maisculas.

Motivaes para converso de base numrica

Atualmente muito comum o uso de bases numricas derivadas de 2 ao se utilizar computadores em baixo nvel (quando se programa um hardware, por exemplo). O humano est familiarizado com a base 10 (decimal), no dia-a-dia, j os computadores atuais trabalham exclusivamente com a base 2 (binrio); assim preciso fazer converses entre estas base quando se pretende inserir algum valor para ser processado pelo computador. No se imagina converter nmeros para o binrio para ento digit-los na calculadora e, depois, converter o resultado para decimal para, ento, us-lo. Esse processo de converso est, no caso da calculadora, pr-programado para ser feito por ela, ou seja, internamente ela faz tudo em binrio: ela converte o que foi digitado para binrio, faz o clculo, converte o resultado para decimal e apresenta o resultado. No entanto quando se programa normal a introduo de valores no meio do cdigo, e em muitas situaes a digitao de cdigos binrios muito complicada/longa para o programador, ento, existem outros cdigos que facilitam a digitao, na prtica muito utilizada a base 8 (octal), e a base 16 (hexadecimal), ambas derivadas da base 2 (note que estas bases facilitam a digitao somente, de qualquer forma, ao ser compilado, toda e qualquer base usada para escrever o programa convertida para base 2 para que o valor sej usado pelo processador). Exemplos10 (Decimal) 0 3 10 15 301 1379 42685 2 (Binrio) 0 11 1010 1111 100101101 10101100011 1010011010111101 8 (Octal) 0 3 12 17 455 2543 123275 16 (Hexadecimal) 0 3 A F 12D 563 A6BD

Repare como na base maior (hexadecimal), o nmero de smbolos usados para representar o mesmo valor bem menor que nas bases menores, isso que facilita a digitao e memorizao dos valores. Repare tambm que, no caso da simbologia da base haxadecimal, so usadas algumas letras, isso ocorre porque temos smbolos para representar somente os algarismos de 0 a 9, como na base 16 necessria a representao de algarismos de 10 a 15 ento as letras de A at F so utilizadas para isso resultando na seqncia: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.

Converso de bases numricas Quando as bases envolvidas so da mesma base logaritmica ento a converso pode ser facilmente feita por simples reagrupamentos dos algarismos e uso de pequenas tabelas de converso. Por exemplo, entre as bases 16 e 8 ou entre 2 e 16 ou ainda entre as bases 27 e 9. Na prtica muito usada a converso entre as bases 2, 8 e 16 pelos motivos citados anteriormente. Segue uma tabela bsica para estas converses: Tabela de converso de bases de origem binria

Decimal Binrio Octal

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 3 4 5 6 7 8 9 A B C D E F

Hexadecimal 0 1 2

Exemplo 1: convertendo 1110101102 para a base 16: Pela tabela, vemos que para se representar os 16 valores possveis para cada algarismo da base 16 todos os 4 algarismos da base 2 so necessrios. Ento o primeiro passo separar o valor em base 2 em blocos de 4 algarismos: 1110101102 = 1.1101.0110 Depois, consultando a tabela convertemos o valor de cada bloco para seu equivalente hexadecimal, assim teremos: 1110101102 = 1.D.616 = 1D616 Exemplo 2: convertendo 1110101102 para base 8: Pela tabela, vemos que somente 3 algarismos binrios so necessrios para a representao de somente 1 algarismo octal, assim vamos fazer a mesma diviso em bloco porm em pacotes com 3 dgitos: 1110101102 = 111.010.110 Depois, consultando convertemos o valor de cada bloco para seu equivalente octal, assim teremos: 1110101102 = 7.2.68 = 7268 Exemplo 3: convertendo o valor 3A816 para octal: Primeiro convertemos para os blocos binrios equivalentes com 4 dgitos: 3A816 = 3.A.816 = 0011.1010.10002 = 11101010002 Agora reagrupamos em blocos de 3 dgitos: 11101010002 = 1.110.101.0002 = 1.6.5.08 Assim: 3A816 = 16508 Exemplo 4: convertendo hexadecimal binrio Quando existir necessidade de converter nmeros hexadecimais em binrios, deve-se separar cada dgito do nmero hexadecimal e substitu-lo pelo seu valor correspondente de binrio. Exemplo: Converter o nmero hexadecimal 1572 em binrio. Logo, 1 5 7 2 = 0001 0101 0111 0010 Exemplo 5: convertendo binrio octal Para converter um nmero binrio em octal, executa-se o processo inverso ao anterior. Agrupam-se os dgitos binrios de 3 em 3 do ponto decimal da esquerda para a direita, substituindo-se cada trio de dgitos binrios pelo equivalente dgito octal. Por exemplo, a converso do nmero binrio 1010111100 em octal: 001 1 010 2 111 7 100 4

Assim, tem-se 1010111100bin = 1274oct Exemplo 6: convertendo binrios a decimais Dado um nmero N, binrio, para express-lo em decimal, deve-se escrever cada nmero que o compe (bit), multiplicado pela base do sistema (base = 2), elevado posio que ocupa. Uma posio esquerda da vrgula representa uma potncia positiva e direita uma potncia negativa. A soma de cada multiplicao de cada dgito binrio pelo valor das potncias resulta no nmero real representado. Exemplo: 1011(binrio) 1 23 + 0 22 + 1 21 + 1 20 = 11 Portanto, 1011 11 em decimal.

Soma de Binrios 0+0=0 0+1=1 1+0=1 1+1=10, ou seja 0 e vai 1* (para somar ao digito imediatamente esquerda) Para somar dois nmeros binrios, o procedimento o seguinte: Exemplo 1: * 1100 + 111 ----= 10011 Explicando: Os nmeros binrios so base 2, ou seja, h apenas dois algarismos: 0 (zero) ou 1 (um). Na soma de 0 com 1 o total 1. Quando se soma 1 com 1, o resultado 2, mas como 2 em binrio 10, o resultado 0 (zero) e passa-se o outro 1 para a frente, ou seja, para ser somado com o prximo elemento, conforme assinalado pelo asterisco,como no exemplo acima. Exemplo 2: ** 1100 + 1111 ----= 11011 Explicando: Nesse caso acima (exemplo 2), na quarta coluna da direita para a esquerda, nos deparamos com uma soma de 1 com 1 mais a soma do 1 ( * ) que veio da soma anterior. Quando temos esse caso (1 + 1 + 1), o resultado 1 e passa-se o outro 1 para frente

Subtrao de Binrios 0-0=0 0-1=1

e

vai

1*

para

ser

subtrado

no

digito

seguinte

1-0=1 1-1=0 Para subtrair dois nmeros binrios, o procedimento o seguinte: * *** 1101110 - 10111 ------= 1010111 Explicando: Quando temos 0 menos 1, precisamos pedir emprestado do elemento vizinho. Esse emprstimo vem valendo 2 (dois), pelo fato de ser um nmero binrio. Ento, no caso da coluna 0 - 1 = 1, porque na verdade a operao feita foi 2 - 1 = 1. Esse processo se repete e o elemento que cedeu o emprstimo e valia 1 passa a valer 0. Os asteriscos marcam os elementos que emprestaram para seus vizinhos. Perceba, que, logicamente, quando o valor for zero, ele no pode emprestar para ningum, ento o pedido passa para o prximo elemento e esse zero recebe o valor de 1.

Multiplicao de Binrios A multiplicao entre binrios similar realizada com nmeros decimais. A nica diferena est no momento de somar os termos resultantes da operao: 1011 x1010 --------0000 + 1011 +0000 +1 0 1 1 --------------=1 1 0 1 1 1 0 * Explicando: Perceba que, na soma de 0 e 1, o resultado ser 1, mas na soma de 1 com 1, ao invs do resultado ser 2, ele ser 0 (zero) e passa-se o 1 para a prxima coluna, conforme assinalado pelo asterisco. Note que, se a soma passar de 2 dgitos, deve-se somar o nmero em binrio correspondente (ex. 4 = 100, 3 =11). 111 x 111 --------111 + 111 + 111 --------------= 110001 No caso, a terceira coluna a soma d 4 (com mais um da anterior), que adiciona um 1 duas colunas depois (100).

Diviso de Binrios Essa operao tambm similar quela realizada entre nmeros decimais: 110 |__10__ - 10 11 -010 - 10 -00 Deve-se observar somente a regra para subtrao entre binrios. Nesse exemplo a diviso de 110 por 10 teve como resultado 11.

Cdigos Binrios O sistema numrico decimal fcil de se usar devido familiaridade. O sistema numrico binrio menos conveniente de se usar, pois nos menos familiar. difcil olhar em nmero binrio e rapidamente reconhecer o seu equivalente decimal. Por exemplo, o nmero binrio 1010011 representa o nmero decimal 83. difcil dizer imediatamente, por inspeo do nmero, qual seu valor decimal. Entretanto, em alguns minutos, usando os procedimentos descritos anteriormente, pode-se prontamente calcular seu valor decimal. A quantidade de tempo que leva para converter ou reconhecer um nmero binrio uma desvantagem no trabalho com este cdigo, a despeito das numerosas vantagens de hardware. Os engenheiros reconheceram este problema cedo, e desenvolveram uma forma especial de cdigo binrio que era mais compatvel com o sistema decimal. Como uma grande quantidade de dispositivos digitais, instrumentos e equipamentos usam entradas e sadas decimais, este cdigo especial tornou-se muito difundido e utilizado. Esse cdigo especial chamado decimal codificado em binrio (BCD binary coded decimal). O cdigo BCD combina algumas das caractersticas dos sistemas numricos binrio e decimais.

Cdigo BCD 8421 O cdigo BCD um sistema de representao dos dgitos decimais desde 0 at 9 com um cdigo binrio de 4 bits. Esse cdigo BCD usa o sistema de pesos posicionais 8421 do cdigo binrio puro. Exatamente como binrio puro, pode-se converter os nmeros BCD em seus equivalentes decimais simplesmente somando os pesos das posies de bits onde aparece 1. Observe, entretanto, que existem apenas dez cdigos vlidos. Os nmeros binrios de 4 bits representando os nmeros decimais desde 10 at 15 so invlidos no sistema BCD. Para representar um nmero decimal em notao BCD substitui-se cada dgito decimal pelo cdigo de 4 bits apropriados. Por exemplo, o inteiro decimal 834 em BCD 1000 0011 0100. Cada dgito decimal representado pelo seu cdigo BCD 8421 equivalente. Um espao deixado entre cada grupo de 4

bits para evitar confuso do formato BCD com o cdigo binrio puro. Este mtodo de representao tambm se aplica s fraes decimais. Por exemplo, a frao decimal 0,764 0.0111 0110 0100 em BCD. Novamente, cada dgito decimal representado pelo seu cdigo equivalente 8421, com um espao entre cada grupo. Uma vantagem do cdigo BCD que as dez combinaes do cdigo BCD so fceis de lembrar. Conforme se comea a trabalhar com nmeros binrios regularmente, os nmeros BCD tornam-se to fceis e automticos como nmeros decimais. Por esta razo, por simples inspeo da representao BCD de um nmero decimal pode-se efetuar a converso quase to rpido como se j estivesse na forma decimal. Como exemplo, converter o nmero BCD no seu equivalente decimal. 0110 0010 1000.1001 0101 0100 = 628,954 O cdigo BCD simplifica a interface homem-mquina, mas menos eficiente que o cdigo binrio puro, pois so usados mais bits para representar um dado nmero decimal em BCD que em notao binria pura. Por exemplo, o nmero decimal 83 escrito como 1000 0011. Em cdigo binrio puro, usam-se apenas 7 bits para representar o nmero 83. Em BCD, usam-se 8 bits. O cdigo BCD ineficiente, pois, para cada bit em uma palavra de dado, h usualmente algum circuito digital associado. O circuito extra associado ao cdigo BCD custa mais, aumenta a complexidade do equipamento e consome mais energia. Operaes aritmticas com nmeros BCD tambm consomem mais tempo e so mais complexas do que aquelas com nmeros binrios puros. Com quatro bits de informao binria, voc pode representar um total de 24 = 16 estados diferentes ou os nmeros decimais equivalentes desde o 0 at o 15. No sistema BCD, seis destes estados (10-15) so desperdiados. Quando o sistema numrico BCD usado, alguma eficincia perdida, mas aumenta-se o entendimento entre o equipamento digital e o operador humano.

Converso Binrio para BCD A converso de decimal para BCD simples e direta. Entretanto, a converso de binrio para BCD no direta. Uma converso intermediria deve ser realizada primeiro. Por exemplo, o nmero 1011.01 convertido no seu equivalente BCD. Primeiro o nmero binrio convertido para decimal. 1011.012 = 3 (1x2 )+(0x22)+(1x21)+(1x20)+(0x2-1)+(1x2-2) =8+0+2+1+0+0,25 = 11,2510 Ento o resultado decimal convertido para BCD. 11,2510 = 0001 0001.0010 01012 Cdigo ASCII O American Standart Code for Information Interchange comumente referido como ASCII tambm chamado ASCII completo, ou ASCII estendido , uma forma especial de cdigo binrio que largamente utilizado em microprocessadores e equipamentos de comunicao de dados. Um novo nome para este cdigo que est se tornando popular American National Standart Code for Information (ANSCII). Entretanto, utilizaremos o termo consagrado, ASCII. um cdigo binrio usado em transferncia de dados entre microprocessadores e seus dispositivos

perifricos, e em comunicao de dados por rdio e telefone. Com 7 bits pode-se representar um total de 27 = 128 caracteres diferentes. Estes caracteres compreendem nmeros decimais de 0 at 9, letras maisculas e minsculas do alfabeto, mais alguns outros caracteres especiais usados para pontuao e controle de dados.

Referncias http://pt.wikipedia.org/wiki/Sistema_bin%C3%A1rio_(matem%C3%A1tica) http://pt.wikipedia.org/wiki/Sistema_octal http://pt.wikipedia.org/wiki/Sistema_hexadecimal http://pt.wikipedia.org/wiki/Sistema_decimal http://pt.wikipedia.org/wiki/Convers%C3%A3o_entre_sistemas_num%C3%A9ricos