3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam se estão ligadas ou desligadas, um computador deve utilizá-la para manipular e armazenar informações. A partir dos dois estados representados pela presença ou ausência de eletricidade, todo o trabalho realizado pelo computador será baseado no sistema binário, onde trabalha-se somente com os símbolos 0 e 1 para a representação de informações. Os sistemas de numeração surgiram com a evolução da civilização para atender a necessidade de registrar informações sobre quantidades. 3.1 Sistema Decimal: é o sistema de numeração mais comum de ser empregado, o que estamos mais habituados a trabalhar e pensar (mas existem exceções! Ex.: dúzia, grosa). Surgimento a partir da analogia com a contagem utilizando os dedos da mão; Criação da notação posicional (números em posições diferentes representam valores diferentes - unidade, dezena, centena, etc.). Base de um sistema de numeração: é a quantidade de algarismos disponíveis para a representação. Ex: base decimal: 0 1 2 3 4 5 6 7 8 9 base 10 A posição ocupada por um algarismo em um número altera seu valor de uma potência de 10 para cada casa à esquerda. Ex: 125 = 1 x 10² + 2 x 10 1 + 5 x 10 0 3.2 Representação da Informação: Sistema Binário: bit (binary digit): 1 ou 0 sistema de numeração conhecido como base 2. Sinal elétrico mais simples tem dois estados, representados por sim e não. Não confundir bases: 10 2 = 2 10 ; dez igual a dois??? Instruções: conjunto de bits inteligível pelo computador. Ex: 1000110010100000 (deve somar dois números). - 14 -
Representação binária: perfeitamente adequada para computadores, mas para seres humanos... Solução: trabalhar com bases que utilizem a potência de 2; as mais utilizadas são octal (2³) e hexadecimal (2 4 ). Octal: oito algarismos para representação; um algarismo octal representa 3 bits. 0 1 2 3 4 5 6 7 Hexadecimal: dezesseis algarismos para representação; um algarismo hexadecimal representa 4 bits. 0 1 2 3 4 5 6 7 8 9 A B C D E F A princípio, as bases binária, octal e hexadecimal podem parecer um conceito totalmente novo, mas não são. Sua formação e comportamento funcionam exatamente como na base decimal; a lógica de construção é exatamente a mesma. Lembre-se da base decimal, como temos um conjunto de símbolos ou algarismos, que associamos a certas quantidades de alguma coisa que queremos contar. Quando não existem mais algarismos a serem utilizados sozinhos, começamos a combiná-los, seguindo um critério estabelecido pela notação posicional. - 15 -
Tabela de Representação de Sistemas de Numeração Valores Binários Será importante sabermos identificar se um valor é maior que o outro quando estivermos trabalhando em sistemas de numeração que não sejam decimais. Não há segredo, funciona da mesma forma que no sistema decimal. Qual valor é maior? 10100101010010 ou 11010110001011? 11111 ou 100000? Níveis de Programação Programa: seqüência de instruções que descreve como executar uma determinada tarefa. Programa escrito em linguagem nativa do computador (binária) difícil. Linguagem de montagem: conjunto de instruções primitivas do computador que são traduzidas para linguagem binária por um programa chamado montador. add A,B 1000110010100000-16 -
Linguagem de montagem ainda longe da notação utilizada pelas pessoas que querem gerar programas para resolver problemas. Solução: criar um conjunto de instruções (linguagem Ln) que seja mais dirigido às pessoas do que à máquina. Linguagem de programação de alto nível traduzida pelo compilador. A+B add A,B 1000110010100000 3.3 Conversões entre Bases: 3.3.1 Conversão binário-octal: como 1 algarismo octal representa 3 algarismos binários, separar os bits de um número binário em grupos de 3 bits e converter cada um destes grupos para o algarismo octal equivalente. 3.3.2 Conversão binário-hexadecimal: análoga a utilizada na conversão binário-octal, a única diferença é que os grupos de algarismos do binário serão formados por 4 bits. Para as conversões octal-binário e hexadecimal-binário basta aplicar a operação inversa, ou seja, para cada algarismo, obter a representação em binário, respeitando a ordem posicional. MUITO IMPORTANTE!!! Não esquecer de incluir zeros não-significativos! - 17 -
Exercícios Efetue as seguintes conversões de base: a) 10100101101 2 = ( ) 16 = ( ) 8 b) 5FB7 16 = ( ) 2 = ( ) 8 c) 74325 8 = ( ) 2 = ( ) 16 d) 101111011101 2 = ( ) 16 = ( ) 8 e) 327 8 = ( ) 2 = ( ) 16 f) 1A7B 16 = ( ) 2 = ( ) 8 g) 10101010101 2 = ( ) 16 = ( ) 8 h) 1746 8 = ( ) 2 = ( ) 16 i) 1746 16 = ( ) 2 = ( ) 8 j) 110111110111 2 = ( ) 16 = ( ) 8 Dica: para as conversões octal/hexadecimal e hexadecimal/octal, não há fórmula direta, estes devem ser convertidos primeiro para binário e depois convertidos novamente. 3.3.3 Conversão de uma base qualquer para decimal: seja um número em uma base b não-decimal composto pelos algarismos a n, a n-1,... a 1, a 0, obteremos seu equivalente decimal da forma: N b = a n x b n + a n-1 x b n-1 +... + a 1 x b 1 + a 0 x b 0 Exemplos: 5F3 16 = 5 x 16 2 + 15 x 16 1 + 3 x 16 0 = 1280 + 240 + 3 = 1523 10 6437 8 = 6 x 8 3 + 4 x 8 2 + 3 x 8 1 + 7 x 8 0 = 3072 + 256 + 24 + 7 = 3359 10 1101 2 = 1 x 2 3 + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 = 8 + 4 + 1 = 13 10 3.3.4 - Conversão da base decimal para uma base qualquer: o número decimal é dividido sucessivas vezes pela base que se deseja a conversão, até que não possa mais ser dividido. O resto de cada divisão será o número na base desejada, indo do último para o primeiro resto obtido. - 18 -
Exercícios Efetue as seguintes conversões de base: a) 1D5 16 = ( ) 10 b) 100101101 2 = ( ) 10 c) 5341 8 = ( ) 10 d) 155 10 = ( ) 2 e) 63 10 = ( ) 8 f) 119 10 = ( ) 16 g) AB 16 = ( ) 10 h) 1001010111111 2 = ( ) 10 i) 1126 8 = ( ) 10 j) 160 10 = ( ) 16 3.4 Álgebra de Boole: No século XIX, o matemático inglês George Boole desenvolveu um estudo estabelecendo o conjunto de regras e estruturas a serem aplicadas a símbolos lógicos, ficando conhecida como Álgebra de Boole (ou Álgebra Booleana). A motivação por trás deste estudo surgiu dos problemas constantes nos projetos de circuitos de chaveamento com relés; o planejamento lógico reduziria a complexidade e os erros na implementação. Os circuitos eletrônicos modernos mantém uma estrutura de funcionamento análoga a utilizada com relés, portanto, as mesmas técnicas desenvolvidas para circuitos com relés ainda são utilizadas no projeto de modernos computadores de alta velocidade. A álgebra booleana, por meio de suas regras, proporciona um modo econômico e direto de descrição do conjunto de circuitos usado nos computadores. - 19 -
As variáveis usadas nas equações booleanas podem assumir apenas um de dois valores possíveis, representados pelos símbolos 0 e 1, chamados de estados lógicos. Usualmente utilizamos 1 para representar um circuito fechado ou no estado ligado ON, e 0 um circuito aberto ou no estado desligado OFF. 3.5 Operações no Sistema Binário: 3.5.1 Adição e multiplicação binária: o conjunto de operações básicas de adição e multiplicação no sistema binário pode ser representado de forma resumida pelas seguintes tabelas: Obs. 1: As operações de adição e multiplicação são realizadas operando-se as colunas da direita para a esquerda, da mesma forma que nas operações decimais. Obs. 2: Todas as operações aritméticas podem ser realizadas através da soma: a multiplicação pode ser feita através de sucessivas somas (um número N vezes b é igual a soma de N com N b vezes); a subtração pode ser feita através do método de complemento a base (que veremos a seguir); Finalmente, a divisão pode ser feita através de sucessivas subtrações. Exemplos de Operações Binárias - 20 -
Exercícios Converta para binário e efetue as seguintes operações: a) 63 10 + 34 10 b) 32 10 x 6 10 c) 7BA 16 + 9C6 16 d) 34 8 x 21 8 e) 73 8 + 34 8 f) 7 10 x 9 10 g) 777 8 + 252 8 h) A5 16 x 11 16 i) 37 8 + 46 8 j) 12 10 x 22 10 3.5.2 Subtração binária: o método mais simples de subtração entre dois valores binários é através do complemento a base, executado pela seguinte seqüência de instruções (ei, é um algoritmo!): Mantenha o minuendo na sua forma original; Inverta o subtraendo (todo 1 vira 0 e todo 0 vira 1 ; Some o minuendo e o subtraendo; Some 1; Ignore o algarismo mais significativo caso ele esteja numa posição decimal que os operandos não tenham um algarismo significativo. Obs.: não se esqueça de representar os zeros não-significativos (pois estes serão importantes na inversão)! - 21 -