CAPÍTULO 2 1- COMO O COMPUTADOR RECONHECE A INFORMAÇÃO Internamente o computador possui um modelo que representa a realidade, criando um modelo numérico e aritmético. Essas representações são de tipos variados como símbolos, textos, imagens, vídeos, som etc. O computador é um equipamento eletrônico, portanto, só reconhece dois estados físicos: Ligado/ desligado ou presença/ausência de energia isso equivale ao nível de tensão elétrica que pode variar entre 0v e +5v. Para representar esses dois estágios o computador utiliza um sistema de numeração chamado binário cujos algarismos são representados pelo número 0 e 1, esses números individualmente são chamados de Binary Digit- BIT. Para representar o estado de ligado o computador utiliza o BIT 1 conseqüentemente o BIT 0 representa o estado inverso. Contudo, utilizando apenas dois bits o computador não conseguiria representar todas as letras, símbolos e números do mundo real. Mesmo realizando combinações de diferentes posições, o máximo de possibilidade alcançada seriam quatro, como mostra a tabela abaixo. 1 1 1 0 0 1 0 0 Para aumentar o número de possibilidades e conseqüentemente o número de representações do mundo real, em 1960 a IBM desenvolveu o Extended Binary Coded Decimal Interchange Code- EBCDIC, derivado do antigo Binary-coded decimal– BCD (uma combinação de 4 bits também conhecida como nibble). Com o EBCIDIC ficou convencionado que os dados seriam representados utilizando uma combinação de 8 bits denominada BYTE. Esse conjunto de bits passou a ser mundialmente utilizado nos sistemas informatizados. Com 8 bits é possível reprentar 256 combinações numéricas, todas a letras do alfabetos , além de símbolos. Para reprentar todas essas cominações foi desenvolvido o acrônimo para American Standard Code for Information 11 Interchange- ASCII, uma tabela com a relação dos dígitos binários e suas respectivas representações do alfabeto inglês, além todos os símbolos possíveis de serem representados em sistema informatizado. A tabela abaixo ilustra parte do código ASCII e suas representações Binário Decimal Hexa Grifo 0010 0000 32 20 0010 0001 33 21 ! 0010 0010 34 22 " 0010 0011 35 23 # 0010 0100 36 24 $ 0010 0101 37 25 % Para formar palavras, imagens e outras estruturas mais complexas são necessários milhões de Bytes. Então, para facilitar a quantificação desses bytes foram desenvolvidas representações que equivalem a mudanças de unidades como 1.000, 1.000.000 e assim sucessivamente. Nome Valor aproximado 8 Bits Byte 1024 Bytes KB 1024 KiloByte MB 1024 MegaByte GB 1024 GigaByte TB 1024 TeraByte PB 1.1. O CONCEITO DE PALAVRA Na terminologia dos computadores, palavra é um grupo de algarismos binário (bits) que podem ocupar uma localização na memória. Elas podem ser processadas de uma só vez, podendo ser um número binário manuseado como um dado ou uma instrução que informa, ao computador, qual operação deve ser executada. Pode ser 12 também um caractere ASCII representando uma letra do alfabeto, ou ainda, um endereço que diz ao processador onde está localizado um dado. Existem tamanhos de palavras diferentes, onde cada um recebe um nome, veja: • 4 bits = NIBBLE (16 variações); • 8 bits = BYTE (256 variações); • 16 bits = WORD (65.536 variações); • 32 bits = DOUBLE WORD (4.294.967.296 variações); • 64 bits = QUAD WORD (18.446.744.073.709.551.616 variações). 1.2. REPRESENTAÇÃO DE DADOS No cotidiano, boa parte da humanidade utiliza o alfabeto como idioma e o sistema decimal como forma de numeração. Porém, os computadores utilizam para ambos o sistema binário. Nesse momento você deve estar se questionando, como isso é possível? Resposta: Utilizando conversões de dados Essas conversões ocorrem de forma transparente, ou seja, não visualizamos. São executadas por um conjunto de programas conhecidos como tradutores (compilador, interpretador e montador). Os tradutores transformam a nossa linguagem composta por números decimais, símbolos, imagens, sons e textos para uma linguagem binária. Quando digitamos um número decimal os tradutores realizam uma conversão desse valor para seu correspondente binário e vice e versa. Esse processo de conversões entre diferentes sistemas de numeração é conhecido como conversão de base. O sistema de numeração binário e decimal não são os únicos sistemas existentes, para o nosso propósito conheceremos, além dos já citados, o sistema Octal (8 dígitos) e Hexadecimal (16 dígitos). Ambos são utilizados pelos tradutores com o propósito de gradativamente realizar a codificação para um nível mais baixo de linguagem. No próximo item compreenderemos a composição dos diferentes tipos de sistema de numeração e os processos envolvidos nas conversões entre bases. Para conferência dos resultados, entre as conversões, podemos utilizar uma calculadora científica. 13 1.3. SISTEMAS DE NUMERAÇÃO Chamamos de sistemas de numeração o conjunto de símbolos utilizados para a representação de quantidades além das regras que definem a forma de representação. O nome do sistema é derivado da quantidade de símbolos que o mesmo pode representar, por exemplo, o sistema que representa DEZ símbolos é chamado de decimal. Outra forma de representação dos sistemas de numeração é através da palavra base seguida do número correspondente, ou seja, para sistema decimal Base10 já para sistema binário Base2. Além da quantidade de símbolos os sistemas diferem quanto a sua característica posicional isso significa que, para alguns sistemas, o valor agregado ao símbolo varia conforme a sua posição. Esse é o caso do sistema de numeração decimal e binário, veja o exemplo abaixo: 555 500 50 5 289 123 200 80 9 100 20 3 No sistema decimal cada posição tem o valor dez vezes maior que a posição a sua direita, ou seja, o mesmo número pode assumir valores diferentes conforme a posição ocupa, com isso, concluímos que o sistema de numeração decimal é um Sistema Posicional. Alguns sistemas não possuem essa característica, ou seja, independente da posição que o número ocupe seu valor não se modifica. Um exemplo desse tipo é o sistema de numeração romano, veja o exemplo abaixo: CCC XXX IV 100 100 100 10 10 10 1 5 O sistema de numeração romano é um exemplo de Sistema Não-Posicional. Outros sistemas trabalham com algarismos não-posicionais, entretanto não faz parte do sistema ocidental, exemplo: Algarismos Egípcios, Minóicos, Sumérios. 14 1.3.1. Sistema Binário O sistema binário, como dito no item I, utiliza dois algarismos (0 e 1), todavia foi convencionado que esses números seriam agrupados a fim de possibilitar a representação dos símbolos existentes em nosso cotidiano com isso, deu-se origem ao BYTE. Da mesma forma que sistema decimal os números binários assumem valores diferentes de acordo com a posição ocupada. Porém, somente o BIT 1 tem peso, lembrando que o bit 0 representa ausência de tensão. A ilustração abaixo representa os valores que o BIT 1 pode assumir na composição do BYTE. Posição 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 128 64 32 16 8 4 2 1 Valor Como possuímos oito (8) posições o BIT 1 assume o valor dessa posição na BASE2. No desenho acima o último BYTE é 10000000, observe que o Bit1 está na posição sete (7), como nossa base é 2 dizemos que essa posição equivale ao valor 27 = 128. O maior valor que um único Byte pode representar é 256 o mesmo que a soma de todos os bits com tensão (11111111). 15 1.3.2. Sistema Octal Como o próprio nome diz nesse sistema utilizamos oito (8) algarismos, portanto iremos trabalhar na BASE 8. Esses números são arábicos: 0,1,2,3,4,5,6,7 assim como no sistema decimal. O sistema Octal também é posicional logo os valores de um mesmo número também variam conforme sua posição veja o exemplo abaixo: Posição 7 6 5 4 3 2 1 0 0 0 0 0 0 4 7 1 512 64 8 1 2097152 262144 32768 4096 Valor O número 471 na base 8 equivale ao número 313 na base 10. Para encontrar esse valor observe o cálculo abaixo: 82 = 64 81= 8 80 = 1 4 x 64 + 7 x 8 + 1 x 1= 313 A forma correta para representa um número qualquer em uma específica é X(base). No exemplo acima a representação correta dos números é: 471(8) e 313(10). O octal foi muito utilizado em informática como uma alternativa mais compacta ao binário, na programação em linguagem de máquina, atualmente o sistema hexadecimal é mais utilizado como alternativa. 16 1.3.3. Sistema Hexadecimal O sistema Hexadecimal também é um exemplo de sistema posicional e conforme o próprio nome sugere utiliza 16 algarismos. Ele foi vinculado à informática, graças à capacidade dos computadores interpretarem as linguagens de programação em byte. Conforme o processamento aumenta, múltiplos de 8 (8, 16, 32) são utilizados para realizar tal atividade. Por essa razão o sistema Hexadecimal é tão vantajoso, com ele os tradutores realizam conversões para uma linguagem de alto nível com cadeias menores de representações. De todos os sistemas vistos até o momento esse é o único que e possui letras em sua composição. Os algarismos pertencentes ao Hexadecimal são: 0 1 2 3 4 5 6 7 8 9 e letras A B C D E F, ao todo DEZESSEIS (16) posições. As letras equivalem aos valores que vão de 10 a 15. Posição 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 2 1 0 4096 256 16 1 0 0 0 0 ............................................................................. Valor 162 = 256 161 = 16 160 = 1 2 X 256 + 1 X 16 + 0 X 1 = 528 A representação correta é: 210(16) 528(10) 17 1.4. CONVERSÃO DE BASE O Teorema Fundamental da Numeração – TFN compõe um conjunto de regras utilizadas para conversão de números entre bases. Segundo o TFN o valor decimal que uma quantidade expressa, em outro sistema de numeração, é dado pela seguinte fórmula: … + X3 x B3 + X2 x B2 + X1 x B1 + X0 x B0 + X-1 x B-1 + … EX: 115,1(3) 1 x 32 + 1 x 31 + 5 x 30 + 1 x 3-1 = 9+3+5+ 0,333= 17,33(10) Com a aplicação deste teorema conseguimos converter qualquer base para base 10. No exemplo acima cada “X” representa o valor de um algarismo de uma base qualquer neste caso, o valor foi 115,1. Observe que valores decimais são representados com números negativos. A letra B representa a base em que o número se encontra (no exemplo a base é 3). Os expoentes destacados representam o valor de cada posição dos algarismos como vimos nos anteriores desse capítulo. • Convertendo de Binário para Decimal Exemplo 1: 00111000(2) Aplicação do teorema 0 X 27 + 0 X 26 + 1 X 25 + 1 X 24 + 1 X 23 + 0 X 22 + 0 X 21 + 0 X 20 = 0 X 128 + 0 X 64 + 1 X 32 + 1 X 16 + 1 X 8 + 0X 4 + 0 X 2 + 0 X 1 = 0 + 0 + 32+ 16 + 8 + 0 + 0 + 0 = 56(10) 18 Exemplo2: 00111000(2) Sabemos que o BIT 0 não agrega valores então para simplificar a equação basta considerar somente o BIT 1. Eles ocupam as posições 5, 4 e 3. Aplicaremos novamente o teorema de forma simplificada: 1 x 25 + 1 x 24 + 1 x 23 = 32 + 16 + 8 = 56(10) • Convertendo de Octal para Decimal Exemplo: 430(8) 4 x 82 + 3 x 81 + 0 x 8 0 = 256 + 24 + 0 = 280(10) • Convertendo de Hexadecimal para Decimal Exemplo: 7C1(16) 7 X 162 + 12 X 161 + 1 X 160 = 1792 + 192 + 1 = 1985(10) 19 Vimos que a aplicação do TFN realiza a conversão de qualquer base para a base decimal. Porém, ele não se aplica na conversão de decimal para outras bases nesse caso, utiliza-se o método de sucessivas divisões. • Convertendo Decimal em binário Dividir sucessivamente por 2 o número decimal e os quocientes que vão sendo obtidos até que o quociente seja 0 ou 1. A seqüência de todos os restos obtidos dispostos na ordem inversa representa o número binário. Exemplo: 10(10) 10 2 0 5 2 1 2 0 2 1 1 00001010(2) • Convertendo Decimal em Octal Exemplo: 280(10) 280 8 0 8 35 3 4 430(8) 20 2 0 • Convertendo Decimal em Hexadecimal Exemplo 1: 1985(10) 1985 1 16 124 12 16 7 16 7 12 1 = 7C1(16) ATENÇÃO! Sempre que dividimos os valores para obter conversão de base, dividimos o numero inteiro, diferentemente das operações aritméticas com números decimais. Neste sistema dividimos o valor conforme a unidade, dezena ou centena do divisor. 1985 10 98 1 10 9 85 10 8 5 10 50 0,5 Resultado: 1985,5 21 1.5. OPERAÇÕES 1.5.1. Adição Binária A forma como somamos e subtraímos no sistema decimal é semelhante nos demais sistemas. Lembrando que quando se quer somar NOVE (09) com UM (01), o resultado é sempre ZERO (0) e vai UM (1) isso equivale a DEZ (10). Relembrando: 1 129 + 11 140 No sistema binário ocorre o mesmo quando se soma 1 com 1, o resultado é 0 e vai 1 isso também equivale a 10. No entanto, algumas regras precisam ser conhecidas, pois em alguns aspectos a adição binária é diferente da decimal. RESULTADOS 0+0 =0 0+1= 1 1+0= 1 1+1= 10 (vai 1) Vamos realizar nossa 1ª soma entre dois valores binários são eles: 1010 e 1111 em decimal equivalem ao número 10 e 15 respectivamente. 111 1010 + 1111 11001 1.5.2. Subtração Binária É semelhante à subtração decimal, todavia como o conjunto de símbolos contém apenas 2 dígitos ao efetuar a subtração parcial entre 2 dígitos, caso o segundo (subtraendo) exceda o primeiro (minuendo), subtrai-se uma unidade do dígito imediatamente à esquerda no minuendo (se existir e seu valor for 1), convertendo-o para 0. Algumas regras precisam ser respeitadas na hora da subtração, observe a tabela: 22 RESULTADOS 0-0=0 0-1= Não pode 1- 0=1 1 - 1= 0 Subtração dos números 11101(29) e 111(17) 022 11101 -00111 10110 As mesmas operações aritméticas podem ser realizadas com os sistemas Octal e Hexadecimal, lembre-se em ambos os casos a quantidade de dígitos é bem maior e isso exigirá mais atenção. Não esqueça que valores como 10, 11,12, 13, 14 e 15 ( Hexadecimal) são representados por letras e não por números 23 LISTA DE EXERCÍCIOS 2 Professora Érica Barcelos Disciplina: Introdução a informática Objetivos: 1. Compreender como os computadores reconhecem uma informação 2. Diferenciar os sistemas existentes 3. Entender os métodos utilizados para conversões de bases A. Marque a opção equivalente ao número de bits que compõe uma PALAVRA. ( ) 4 bits ( ) 8 bits ( ) 16 bits ( ) 32 bits B. Marque a opção que NÃO contém sistemas de numeração posicional ( ) Binário/ Decimal ( ) Hexadecimal/ Octal ( ) Romano/sumérios C. Qual valor decimal abaixo ao ser convertido seria representado pelo byte 00001000 ( ) 32 ( ) 16 ( ) 8 ( ) 4 ( ) 2 D. Converta os números abaixo para decimal, elabore o cálculo. AF8(16) 840(8) 11100011(2) E. Converta os números para sistema binário 230(10) 192(10) 100(10) F. Some os números 10001000 11001111 + + 00001000 00010000 24 BIBLIOGRAFIA DO CAPÍTULO DARLAN, DIEGO. O sistema Binário. WebArtigo de 2008. Disponível em http://www.oficinadanet.com.br/artigo/1347/o_sistema_binario. Acesso em 02/02/2012. GABRIEL, TORRES. Hardware curso completo. Editora Axcel Books, 2001, 4ª edição STAIR, RALPH M , REYNOLDS, GEORGE W. Princípios de sistemas de informação, uma abordagem geral. Editora Pioneira Thomson, 2009, 6ª edição. 25