Fundamentos da Computação Apostila de Informática I.

Fundamentos de computação

LFG-TI

Prof. Bruno Guilhen
Um sistema analógico contém dispositivos que manipulam quantidades físicas que são repressentadas na forma analógica. Em sistemas analógicos, as quantidaddes físicas podem variar ao longo de uma faixa continua de valores. Por exemplo, as quantidades físicas podem variar ao longo de uma faixa continua de valores. Por exemplo, a amplitude do sinal de saída de um alto-falante em um receptor de rádio pode apresentar qualquer valor entre zero e o seu valor máximo (limite). Outros sistemas analógicos comuns são amplificadores de áudio, equipamentos de gravação/reprodução de fita magnética e um simples reguladore de luminosidade (dimmer). O que é um computador digital? Um computador digital é uma combinação de dispositivos e circuitos digitais que podem realizar uma seqüência programada de operações com mínima intervenção humana. A seqüência de operações é chmada de programa. O programa é um conjunto de instruções codificadas que é armazenado na memória interna do computador juntamente com todos os dados de que o programa necessita. Quando o computador é comandado a executar o programa, ele executa as instruções na ordem em que foram armazenadas na memória até que o programa termine. Ele faz isso em uma velocidade extremamente alta. Como os computadores “pensam”? Computadores não pensam! O programador do computador fornece um programa de instruções e de dados que especificam cada detalhe sobre o que fazer e quando fazer. O computdor é simplesmente uma máquina de alta velocidade que pode manipular dados, resolver problemas e tomar decisões, tudo isso sob o controle de um programa. Se o programador cometer um erro no programa ou entrar com os dados errados, o computador produzirá resultados incorretos. Um ditado popular na computação diz “lixo na entrada – lixo na saída”. A organização básica de um computador. A organização básica de um computador consiste em máquinas que podem ser divididas em até seis níveis. O esquema abaixo mostra cada um dos níveis e o estado de cada nível em relação a atuação de cada nível. Começando pelo nível 0, na parte mais baixa do esquema temos ai o hardware da máquina. Abaixo desse nível ainda poderíamos falar do circuito eletrônico propriamente dito, mas isso não pertence ao escopo dos concursos para analistas de sistemas e sim para engenheiros eletricistas que precisam saber o a constituição física do transistor entre outras coisas. Dos padrões que frequentemente aparecem em concursos para analistas de sistemas o nível mais baixo que estudaremos será o da lógica digital, nível 0, onde são encontradas as portas (AND, OR, NOT, XOR) aquelas que possuem entradas binárias, e são compostas de transistores formando as portas. As portas podem formar, por exemplo, as memórias de 1 bit e que conjulgadas formam os registradores. Cada um dos seis níveis podem assim serem descritos:

1.1. Introdução A Informática atua em todas as áreas do conhecimento humano. A sua utilização passou a ser um diferencial para pessoas e empresas, visto que, o controle da informação passou a ser algo essencial para se obter maior flexibilidade no mercado. Assim, o profissional, que melhor integrar sua área de atuação com a informática, atingirá, com mais rapidez, os seus objetivos e, conseqüentemente, o seu sucesso. Então o que vem a ser um computador? É um sistema constituído por HARDWARE , SOFTWARE e PEOPLEWARE. HADWARE – Parte física COMPUTADOR SOFTWARE – Parte lógica PEOPLEWARE - Usuário A evolução dos Computadores Eletrônicos. Os computadores eletrônicos evoluíram baseados em quatro gerações assim descritas: 1ª Geração(1951 – 1958) – Tinham como característica principal o uso de válvulas, alto consumo de energia e tamanho aproximado de 140m2 , geravam uma grande quantidade de calor. 2ª Geração(1959 – 1965) – Tinham como característica principal o uso de transistores, elemento que revolucionou o mundo da eletrônica, dando aos computadores mais rapidez e um tamanho bem menor que a geração anterior. 3ª Geração(1965 – 1969) – Tinham como característica principal o tamanho reduzido para médio e pequeno porte, ainda com o lançamento do IBM/360 esses computadores passaram a possuir a tecnologia dos circuitos integrados no seu modo primário. 4ª Geração(1970 até os dias atuais) – Característica principal: domínio da tecnologia dos Circuitos Integrados (semicondutores a silício) CHIP VLSI. Os processadores atuais utilizam de 22 a 30 milhões de transistores integrados na pastilha de silício. 1.2.

II.

Organização e Arquitetura de Computadores

Sistemas Analógicos e Digitais. Um sistema digital é uma combinação de dispositivos projetados para manipular informação lógica ou quantridades físicas que são representadas no formato digital; ou seja, assim as quantidades podem assumir apenas valores dicretos. Esses dispositivos são na maioria das vezes eletrônicos, mas podem, tambe, ser mecânicos, magnéticos ou pneumáticos. Alguns dos sistemas digitais mais conhecidos são s computdores digitais e as calculadoras, os equipamentos digitais de áudio e vídeo e o sistema de telefonia (o maior sistema digital do mundo).

www.concursosdeti.com.br

1

www.brunoguilhen.com.br

o microprocessador. a unidade de memória. bem como. A interconexão básica dessas III. / U. Isso é feito para separar a 9).Fundamentos da Computação LFG-TI Prof. essenciais: a unidade lógica e aritmética (ULA ou ALU). A CPU também tem um digitais usam o sistema de numeração binário (base 2) conjunto de registradores que realiza funções especiais.  É o verdadeiro nível de linguagem de máquina. (U.  Serve para executar as microinstruções do nível 1. Em um eletrônico simples e preciso que opere com apenas dois microprocessador.L. Por outro lado. é muito difícil projetar um equipamento Na figura 1. Por exemplo./REG) PERIFÉRICOS DE SAIDA M E M Ó R IA SE C U N D Á R IA Figura 1 – Organização básica de um computador temporário para os dados dentro do CPU sem necessidade Todos os computadores contêm cinco elementos ou unidades de acessar a memória externa.  Algumas vantagens do nível de microprogramação sãode falicitar o projeto e a construção dos circuitos digitais. 0 de Processamento (UCP ou CPU).) Nível de Arquitetura de conjunto de Instruções Interpretação (microprograma) Nível de Microarquitetura Hardware Nível lógico digital Nível 0 – NÍVEL LÓGICO DIGITAL  É considerado o hardware do computador sendo formado pelos circuitos eletrônicos (transistores). Por esse motivo.C.br . disposistovos de E/S. residente em memória permanente (ROM).brunoguilhen.  Nem todas as máquinas possuem este nível como é o caso das máquinas RISC. as informações ou os sinais de controle conveniente para ser implementado em sistemas digitais. flexibilizar e possibitar o desenvolvimento de instruções mais potentes em nível de máquina convencional. é muito fácil projetar um circuito o “cérebro” real do processador das outras unidades. através da implementação de parte da lógica digital dentro Nível 4 Nível 3 Nível 2 Nível 1 Nível 0 MEMÓRIA CENTRAL ( RAM / ROM) PERIFÉRICOS DE ENTRADA U.concursosdeti.P. Sistema de Numeração e Codificação unidades é mostrada na figura 1.com. UCP. a unidade de controle.C. compõe o que é conhecido por firmware em tem por função interpretar e traduzir as instruções que lhe são submetidas pelos níveis superiores. O microprograma.A. memória. a CPU usualmente é implementada em níveis de tensão. Nível 5 Nível de linguagem orientado a problemas Tradução (compilador) Nível de linguagem de montagem (Assembly) Tradução (assembler) Nível do Sistema Operacional da máquina Interpretação parcial (S. quase todos os sistemas um único chip.com. As setas indicam a direção Infelizmente. Esses registradores também possibilitam o armazenamento www. estão fluindo. Bruno Guilhen do firmware. Nível 1 – NÍVEL DE MICROARQUITETURA  Nesse nível os registradores formam a memória local e um circuito denominado ALU (Unidade Lógica e Aritmética) que é capaz de operações aritméticas simples. o sistema de numeração decimal não é na qual os dados. a unidade de entrada e a unidade de saída. como sistema básico de numeração para suas operações. a ULA e a unidade de controle são mostradas eletrônico para que ele opere com dez níveis de tensão combinadas em uma unidade denominada Unidade Central diferentes (cada um representando um caractere decimal. dispositivos de comunicação e interfaces. A seguir é possível acompanhar o esquema de um compudor dividido em seis níveis.br 2 www.O.

o termo digito binário (binary digit) é quase sermpre abreviado com o uso do termo bit. para cada inteiro positivo n. Bruno Guilhen embora outros sistemas de numeração sejam. c. A base hexadecimal é composta por dígitos e letras da seguinte forma: 0 a 9 e as letras a. Como o computador utiliza dezenas. A seguir será trabalhado os principais métodos de conversão em base. mil bytes) 220 = 1024 KB (aprox. o número decimal 20 é representado por 2010.80 Nos próximos capítulos esse assunto de mudança de base será melhor abordado.brunoguilhen. Um byte é constituído sempre de 8 bits e pode representar quaisquer tipos de dados ou informações.concursosdeti.23 + 1. como por exemplo. todas as posições têm de ser consideradas. centenas e até bilhões de bytes. a seguinte equivalência: 101002 = 248 = 2010 = 1416 Teorema da Representação por Base Seja k qualquer inteiro maior que 1 (lembre que a palavra inteiro é usada apenas para números representados na base decimal). o de George E.024 GB (aprox. Nesse método executa-se a divisão sucessiva pelo decimal 2 até achar um quociente 0.101 + 2. as bases mais utilizadas para sistemas de numeração são:  Binária (Base 2)  Octal (Base 8)  Decimal (Base 10)  Hexadecimal (Base 16) Uma relação entre elas pode ser visualizada na tabela a seguir Binária Octal Decimal Hexadecimal 00000 00 00 00 00001 01 01 01 00010 02 02 02 00011 03 03 03 00100 04 04 04 00101 05 05 05 00110 06 06 06 00111 07 07 07 01000 10 08 08 01001 11 09 09 01010 12 10 0A 01011 13 11 0B 01100 14 12 0C 01101 15 13 0D 01110 16 14 0E 01111 17 15 0F De acordo com a tabela acima. esse ssutena de base e também pode ser usado para representar qualquer quantidade que possa ser representada em decimal ou em qualquer outro sistema de numeração. Tem-se portanto. No sistema binário há apenas dois símbolos ou valores possíveis para os dígitos: 0 e 1.. + as onde a0>0 e cada ai é um inteiro não negativo maior que k.Fundamentos da Computação LFG-TI Prof. visto que. muitas vezes. Binário para Decimal 1001101(2) = 1x26+0x25+0x24+1x23+1x22+0x21+1x20 = 64 + 0 + 0 + 8 + 4 + 0 + 1 1100101(2) = 77(10) Decimal para Binário Há duas maneiras de converter um número decimal inteiro para seu equivalente no sistema binário. Exemplos: 1210 = 1.21 + 0.br .com. é comum que o sistema binário use um numero maior de dígitos para expressar um determinado valor..81 + 4. existe uma representação (a prova deste teorema você encontra em qualquer bom livro de teoria numérica.024 MB (aprox. 1 bilhão de bytes) 240 B= 1.024 bytes (aprox. achando zero no quociente pega-se os restos Base de um Sistema de Numeração Como se sabe.com.br 3 www.22 + 0. O Byte A maioria dos microcomputaodres manipula e armazena informações e dados binários em grupos de 8 bits. No sistema binário. O primeiro método é quando o número decimal é simplesmente expresso como uma soma de potências de 2. Um outro exemplo de conversão de decimal para binário é o método de divisões sucessivas por 2. Sistema de numeração binário O sistema de numeração binário é o mais importante sistema de numeração em sistemas digitais.161 + 1. 1 trilhão de bytes) 250 B = 1024 TB 260B = 1024 PB índice indicando a base em que está representado. Andrews).160 = 1116 1210 = 1.100 = 1210 1710 = 1. d. utiliza-se certas unidades de medida em bytes. 1 milhão de bytes) 230 B= 1. o qual será usado a partir de então. Conversão entre Diferentes Bases As bases octal e hexadecimal também são muito úteis em computação. em Eletrônica e Computação. Entretanto. é um sistema posicional em que cada digito (bit) possui um certo peso de acordo com a posição relativa do bit menos significativo (LSB). Esta representação de n é unica e é chamada de representação de n na base k. de modo que uma seqüência de 8 bits recebe um nome especial: ela é denominada byte. Então. escreve-se o número e um www. b. A base octal é representada com 8 dígitos que variam entre 0 e 7. isto é. e os bits 1s e 0s são colocados nos locais apropriados. Exemplo: 45(10) = 32 + 8 + 4 + 1 = 25 + 0 + 23 + 22 + 0 + 20 = 1 0 1 1 0 1(2) 45(10) = 101101(2) Observe que um bit 0 é colocado nas posições 21 e 24. Lembre-se de que precisamos de 3 ou 4 dígitos binários para a mudança de base octal e hexadecimal. usados juntamente com o sistema binário. respectivamente. como: 1 Kilobyte = 1 KB 1 Megabyte = 1MB 1 Gigabyte = 1GB 1 Terabyte = 1TB 1 Petabyte = 1PB 1 Exabyte = 1EB 210 = 1. e e f. n = a0ks + a1ks-1 + .20 = 11002 1210 = 1.

] ) e alguns códigos de controle ( <Crtl> ) que são utilizados para converter todos os símbolos em números binários. objetivando permitir a troca de dados entre máquinas de diferentes tipos e fabricantes. De acordo com os mesmos métodos utilizados anteriormente. 356(16) = 3 x 162 + 5 x 161 + 6 x 160 356(16) = 854(10) 2AF(16)= 2 x 162 + 10 x 161 + 15 x 160 2AF(16) = 687(10) Conversão de decimal para hexadecimal Nesse caso o método de divisões sucessivas será usado novamente. o número 25 na base decimal quando convertido em binário por esse método fica: O sistema de numeração hexadecimal usa a base 16. mas. 4. em um total de 2N números diferentes. Conversão de octal para decimal 372(8) = 3x(82) + 7x(81) + 2x(80) = 250(10) 24.concursosdeti. foi proposto o uso de um código comum. O sistema de numeração octal é muitas vezes utilizado no trabalho com computadores digitais. a fim de possibilitar a comunicação entre os computadores. 2. {. 3. que usa a escala do decimal 0 a 127. 1. Veja um exemplo de conversão do número 26610 para a base octal. números.com. A 7(16) 266  33 + o resto 2 8 33  4 + o resto 1 8 4  0 + o resto 4 8 266(10) = 4 1 2(8) Sistema de numeração Hexadecimal www.com.Fundamentos da Computação LFG-TI Prof. Vale lembrar que cada dígito hexadecimal é representado por um grupo de 4 digitos binários. No modo extendido o ASCII forma 256 caracteres. os quais efetivamente podem ser processados. 6. Um número decimal pode ser convertido para octal usando o mesmo método de divisões sucessivas que foi usadona conversão de decimal para binário.75(10) Conversão de decimal para octal. Bemer e sua equipe para desenvolver o "American Standard Code for Information Interchange" (Código Padrão Norte-americano para Intercâmbio de Informações). 1 0 -1 423  26 + o resto 7 16 26  1 + o resto 10 16 1  0 + o resto 1 16 423(10) = 1 Códigos Alfanuméricos Código ASCII Antes de maio de 1961 a maioria dos sistemas de computadores tinha uma maneira particular de representar os caracteres alfanuméricos. 5. 25  12 + o resto 1 2 12  6 + o resto 0 2 6  3 + o resto 0 2 3  1 + o resto 1 2 1  0 + o resto 1 2 25(10) = 1 1 0 0 1(2) Usando N bits. também. O "American National Standards Institute" aceitou a proposta de Robert W. Veja um exemplo de conversão do número 356 da base hexadecimal para a base decimal. só que neste caso essa divisão será por 16. impressoras e programas de edição de texto. pode-se representar números decimais na faixa de 0 a 2N – 1. aquele que fica mais a esquerda) será o último resto. ASCII é um código numérico usado para representar os caracteres. hoje conhecido como código ASCII. como é usado no idioma inglês moderno. O código permite não só uma melhor compreensão sobre a lógica do funcionamento do computador. 8. Veja a conversão do decimal 42310 para Hexadecimal. O sistema octal tem base oito. ele tem 16 símbolos. e visa padronizar a forma pela qual os computadores representam letras.6(8) = 2x(8 ) + 4x(8 ) + 6x(8 ) = 20. entendido por quase todos os computadores. Conversão de hexadecimal para decimal Um número hexadecimal pode ser convertido para seu equivalente decimal devido ao fato de que a posição de cada digito hexa tem um peso que é uma potência de 16. Por exemplo. Assim.brunoguilhen. porém com um fator de divisão 8 em vez de 2. E os dígitos hexadecimais de A até F são equivalentes aos valores decimais de 10 até 15. Sistema de numeração Octal. É baseado no alfabeto romano.br 4 www. 7. Assim. acentos e sinais diversos ( por exemplo: <. Assim cada dígito de um número octal pode ter qualquer valor de 0 a 7. Assim. o que significa que ele tem oito dígitos possíveis: 0.br . Bruno Guilhen dessa divisão (que sempre é 0 ou 1) pegando da direita para a esquerda (será escrito de modo inverso) onde o primeiro binário ( o mais significativo.

Fundamentos da Computação LFG-TI Prof. É importante notar que há apenas 95 caracteres que podem ser impressos.br 5 www.o caráter 24 representa a função "cancel". encontrada no canto superior esquerdo nos teclados. E eles são numerados de 32 a 126.o caráter 10 representa a função "LINE FEED". . < = > ? Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Hexadecimal 0 1 2 3 4 5 6 7 8 9 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F cilindro. Bruno Guilhen possibilita a utilização de caracteres.concursosdeti. pois os primeiros códigos (de 0 a 31) foram reservados para caracteres de controle. . / 0 1 2 3 4 5 6 7 8 9 : . portanto muitos deles são dirigidos a estes equipamentos.br . ou seja. cujos símbolos não aparecem no teclado. Binário 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 0100 0000 1001 0000 1010 0000 1011 0000 1100 0000 1101 0000 1110 0000 1111 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 0001 0110 0001 0111 0001 1000 0001 1001 0001 1010 0001 1011 0001 1100 0001 1101 0001 1110 0001 1111 0010 0000 0010 0001 0010 0010 0010 0011 0010 0100 0010 0101 0010 0110 0010 0111 0010 1000 0010 1001 0010 1010 0010 1011 0010 1100 0010 1101 0010 1110 0010 FFFF 0011 0000 0011 0001 0011 0010 0011 0011 0011 0100 0011 0101 0011 0110 0011 0111 0011 1000 0011 1001 0011 1010 0011 1011 0011 1100 0011 1101 0011 1110 0011 1111 Comentário Caracter Nulo Começo de cabeçalho de Tx Começo de texto Fim de texto Fim de transmissão Interroga Confirmação Sinal sonoro Volta um caracter Tabulação Horizontal Próxima linha Tabulação Vertical Próxima Página Início da Linha Shift-out Shift-in Data link escape Controle de dispositivo Controle de dispositivo Controle de dispositivo Controle de dispositivo Negativa de Confirmação Synchronous idle Fim de transmissão de bloco Cancela Fim de meio de transmissão Substitui Escape Separador de Arquivo Separador de Grupo Separador de registro Separador de Unidade www. fitas de papel perfurado e impressoras de Caracter NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE D1 D2 D3 D4 NAK SYN ETB CAN EM SUB ESC FS GS RS US Espaço ! " # $ % & ' ( ) * + .brunoguilhen.com.o caráter 27 representa a função "escape" determinada pela tecla <ESC>. Por exemplo: . que controlam funções ou equipamentos. Esses caracteres de controle tiveram sua origem nos primórdios da computação. .com. que faz com que uma impressora avance seu papel. quando eram utilizadas máquinas Teletype (como máquinas de escrever eletro-mecânicas).

com.br 6 www.concursosdeti. Bruno Guilhen Tabela ASCII – Extendida.br .brunoguilhen.Fundamentos da Computação @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DELETE 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F LFG-TI 0100 0000 0100 0001 0100 0010 0100 0011 0100 0100 0100 0101 0100 0110 0100 0111 0100 1000 0100 1001 0100 1010 0100 1011 0100 1100 0100 1101 0100 1110 0100 1111 0101 0000 0101 0001 0101 0010 0101 0011 0101 0100 0101 0101 0101 0110 0101 0111 0101 1000 0101 1001 0101 1010 0101 1011 0101 1100 0101 1101 0101 1110 0101 1111 0110 0000 0110 0001 0110 0010 0110 0011 0110 0100 0110 0101 0110 0110 0110 0111 0110 1000 0110 1001 0110 1010 0110 1011 0110 1100 0110 1101 0110 1110 0110 1111 0111 0000 0111 0001 0111 0010 0111 0011 0111 0100 0111 0101 0111 0110 0111 0111 0111 1000 0111 1001 0111 1010 0111 1011 0111 1100 0111 1101 0111 1110 0111 1111 Prof.com. caracteres especiais para desenhas figures www. Representa caracteres extras. caracteres de línguas mortas e caracteres especiais para desenhos.

É o padrão ocidental.com. Nota: Arte ASCII é aquela onde os únicos elementos utilizados são os caracteres disponíveis no teclado do computador.br 7 www. que contém caracteres adicionais para as linguagens européias. será necessário ir ao Painel de Controle. O UNICODE Unicode é o padrão universal de codificação de caracteres.br . por exemplo é o padrão Latin-1 (Alfabeto Latino 1) que nós usamos. utilizado também no Brasil. É o padrão mundial. Para ver outras opções de codificação. Cada caracter possui 2 bytes ( 16 bits ). onde podemos ver "Europeu Ocidental (Windows) marcada. inserir o CD do Windows e adicionar o Mapa de Caracteres. Caso não encontre nesse caminho. pois não eram suficientes para suportar todos os caracteres e idiomas. que pode ser usado em quase todos os idiomas. O ISO 8859-1.com. dentre eles o ISO 8859-“X” que define o conjunto completo de alfabetos de todos os idiomas. o mesmo emitirá um aviso de instalação sob demanda para o idioma usado no referido site. programas e browsers modernos suportam o Unicode. Faça uma experiência: abra o Word ou o Notepad. esta opção é parecida. é possível que não esteja instalado. No Internet Explorer 6. O Unicode também é conhecido como "UCS = Universal Character Set = Conjunto Universal de Caracteres". 16 bits (UTF-16) e 32 bits (UTF-32). Existem diversas normas e/ou padrões da ISO. podemos ver o Mapa de Caracteres do Windows XP. Dica: Quando acontecer de você acessar um site (usando o Firefox) e os caracteres da página não ficarem completamente legíveis. Para ter acesso a esse mapa. Sua criação foi baseada na tabela ASCII. que é usado em muitos sistemas operacionais e em programas para navegação na Internet. Outras codificações Há vários conjuntos de caracteres hoje em dia. clicar em Adicionar ou Remover Programas. faltando acentuação. Duas das mais importantes codificações atualmente utilizadas são: ISO: "International Standardization Organization". baseado no ASCII). Deve surgir a letra A maiúscula na tela do programa. Bruno Guilhen Como conseguir um caracter que não está no teclado Pressionando a tecla <ALT> e o número do caracter (D) aparecerá o dígito correspondente em um processador de texto. gerando um máximo de 256 caracteres. Por exemplo. Isto vale também para os browsers do Linux Mozilla. www. certifique-se de que o código de caracteres esteja marcado como “Western (ISO 8859-1)” . Levante os 2 dedos juntos.0 (para Windows) podem clicar em “View" ou "Exibir” em seguida em “Character Encoding" ou "Codificação” para verificar a opção “Western (ISO 8859-1)" marcada. Neste caso. Vários sistemas operacionais. O Unicode fornece um número único para cada caractere. pressione <Alt> e o número 65 (no teclado numérico ativado). não importando a plataforma (a máquina e/ou sistema operacional em uso). o que permite um valor máximo bem maior que o anterior: 65. UTF-8: "Unicode Transformation Format-8". No caso do Internet Explorer. o programa ou o idioma. Konkeror. há um conjunto de caracteres denominado ISO.Fundamentos da Computação LFG-TI Prof. caracteres truncados ou estranhos. basta clicar em "Iniciar\Programas\Acessórios\Ferramentas do Sistema\Mapa de Caracteres". Usuários do browser Mozilla Firefox 1.brunoguilhen. Este padrão está sendo largamente implementado e já pode ser visto como um substituto para o padrão ASCII (que é definido pelo ISO 646). ou seja. No exemplo da figura 40. similar ao ASCII. basta clicar em “More Encodings" ou "Mais”.concursosdeti. Também há conjunto de caracteres que se constitui em um padrão mais universal chamado ISO Latin 1. Galeon. Essa codificação existe em três formas: em 8 bits (UTF-8. Cada caractere só possui 1 byte ( 8 bits ).536 caracteres. Foi desenvolvido para resolver problemas que existiam com outros sistemas de codificação. etc. Foi criado pelo Consórcio Unicode e é baseado no padrão ISO 10646 (ISO = International Organization for Standardization = Organização Internacional de Padronização).

. os bits são numerados como 0. é preciso ressaltar que: 1.1. Este bit é conhecido como bit de sinal. Aritmética Computacional As palavras de um computador são compostas por bits e podem representar números armazenados na memória... e a expressão bit mais significativo para designar o www. uma regra simples para transformar um número binário em sua representação em complemento a 2 é a seguinte: 1) copie da direita para a esquerda todos os bits até encontrar o primeiro bit 1 inclusive e 2) inverta todos os demais bits logo abaixo esta ilustrado um exemplo da obtenção de representação em complemento a 2 de um número binário com 4 dígitos.3.. em qualquer base.. Para que você tenha a mesma visão da tabela acima.. 0110 = 6 na base 10 1001 (número binário invertido) + 0001 (soma com 1) 1010 (complemento a 2) usando a regra: 0110 ->1010 A respresentação em complento a 2 tem a vantagem de representar números negativos sempre com o bit 1 em sua posição mais significativa. multiplicação e divisão.. o valor do iésimo dígito d de um número é dado por: d x basei....... Bruno Guilhen Figura 40 – Mapa de Caracteres do Windows XP Ainda no exemplo da figura 40. logo o número é positivo....Fundamentos da Computação LFG-TI Prof.. que são representados em complemento a 2. o hardware só precisa testar este bit para verificar se o número é positivo ou negativo. Estes números podem ter diferentes significados. Se o tamanho de uma palavra é igual a n bits. subtração. 0111 1101 = 125 0111 1110 = 126 0111 1111 = 127 No conjunto acima nota-se que o número mais a esquerda é zero.. O complemento a 2 é obtido invertendo-se o número binário e depois somando 1 a este valor.. 2. Porém. A seguir está representada uma seqüência de números binários (8 dígitos) representados em complemento 2. Os caracteres mudam de acordo com o tipo de fonte escolhida. vai depender do número de fontes que estiver instalado em seu computador. Os computadores manipulam tanto números positivos quanto números negativos. Estes valores são implementados facilmente através de circuitos elétricos...brunoguilhen. Se ao realizarmos operações sobre os números.. é necessário marcar a caixa "Modo de exibição avançado".. logo o número é negativo. onde i começa em 0 e cresce da direita para a esquerda... elas gerarem resultados que não podem ser representados na quantidade de bits reservados ocorre o que denominados de overflow (números muito grandes) ou underflow (números muito pequenos).. os números que podem ser representados também têm tamanho limitado.concursosdeti. o maior número possível de ser representado é igual a 2n.. a base 2 é a mais adequada para os computadores porque tratam com somente dois valores 0 e 1. Por exemplo.com.. O objetivo deste capítulo é mostrar como o hardware implementa a representação dos números.com. . como inteiros ou reais. de acordo com a posição ocupada pelo dígito. o número 1011 na base dois é igual a: (1x23) + (0x22) + (1x21) + (1x20) = (1x8) + (0x4) + (1x2) + (1x0) = 8 + 0 + 2 + 1 = 11. Utilizamos a expressão bit menos significativo para designar o bit 0. A manipulação dos números inclui operações de soma. Números com Sinal e Números sem Sinal Os números podem ser representados em qualquer base.. IV... Tanto o overflow quanto o underflow geram exceções e são tratados pelo sistema operacional.. Portanto. Assim. Nesta convenção os números que possuem 0s à esquerda são considerados positivos e os números com 1s à esquerda são considerados negativos. Da aritmética temos que.. 1000 0001 = -127 (o número mais a direita indica o sinal) 1000 0010 = -126 1000 0011 = -125 . os algoritmos adequados para operações aritméticas e sua implicação no conjunto de instruções da máquina. Portanto. serem positivos ou negativos. bit de mais alta ordem... 1111 1101 = -3 1111 1110 = -2 1111 1111 = -1 No conjunto acima nota-se que o número mais a esquerda é um. 0000 0000 = 0 0000 0001 = 1 0000 0010 = 2 0000 0011 = 3 . da direita para a esquerda em uma palavra. Como o tamanho de uma palavra manipulada por um computador tem tamanho limitado...br 8 www.br .2.. Porém. como por exemplo o bit 31 numa palavra de 32 bits..

As instruções podem deslocar bits tanto à direita quanto à esquerda.concursosdeti. mas é muito útil. definidas pelo conjunto de instruções. A seguir mostra-se as operações lógicas. gerando um carry. Assim. b . manipular campos de bits dentro de uma palavra ou mesmo bits individuais. uma entrada relativa ao carry in e uma saída para o carry out. Elas podem ser tratadas tanto por hardware quanto por software. A Figura 41 mostra este somador. à esquerda.br . CarryIn). portas OR. a equação lógica para gerar o bit soma é dada por: Soma = (a . AND. AND. pois elas são mapeadas diretamente com componentes do hardware. Todos os bits são movidos para o lado determinado e os bits que ficam vazios são preenchidos com 0s. se o resultado obtido não puder ser representado pela quantidade de bits que formam uma palavra. carryin ) + ( a . OR e XOR. b . A operação de subtração usa a adição. de deslocamento à direita.com. Os projetistas de um sistema devem decidir onde tratar a ocorrência de overflow ou de underflow em operações aritméticas. www. que podem ser implementadas a partir dos blocos de hardware mencionados anteriormente. Outras instruções lógicas muito úteis são que implementadas na unidade lógica e aritmética de um processador são as operações NOT. e que depois é tratada por software. Um dos tipos de instrução utilizados são as de deslocamento de bits. tanto a soma como a subtração podem gerar overflow ou underflow. uma saída para a soma resultante. também. 710 = 0 1 1 12 610 = 0 1 1 02 1310 = 1 1 0 12 110 = 0 0 0 12 Construção de uma Unidade Lógica Aritmética A unidade lógica aritmética (ALU – Arithmetic Logic Unit) é o dispositivo que realiza as operações lógicas e aritméticas. Os carry outs gerados pelos bits menos significativos da operação podem ser propagados por toda a extensão do somador. com os carries sendo passados para o próximo bit à esquerda. bit a bit. E.b).com. Operações Lógicas Os computadores manipulam palavras. OR e XOR. Bruno Guilhen Adição e Subtração Numa soma os bits são somados um a um da direita para a esquerda. CarryIn) + (a. Neste caso. Como citado anteriormente. NOT. Somador de um bit Podemos especificar as saídas soma e carry out através de equações lógicas. carryin ) + ( a . ou vice-versa. A equação lógica para gerar o bit carry out é dada por: CarryOut = (b. Se somarmos ou subtrairmos dois números com sinais contrários. nunca ocorrerá overflow ou underflow. Este somador é denominado somador de carry propagado. O subtraendo é simplesmente negado antes de ser somado ao minuendo. o bit de sinal também é usado para armazenar um valor pertencente ao resultado da operação. b . gerando um carry out no bit mais significativo do resultado da operação. O overflow ocorre quando somamos dois operandos positivos e obtemos um resultado negativo. Isto significa que utilizamos o bit de sinal. as arquiteturas de conjuntos de intruções incluem instruções para manipulação de bits. necessitamos de um circuito com duas entradas para os operandos. A próxima função a ser incluída é a adição.Fundamentos da Computação LFG-TI Prof.brunoguilhen. para armazenar um valor pertencente ao resultado da operação.CarryIn) + (a . O exame de caracteres individuais (8 bits) dentro de uma palavra é um bom exemplo dessa necessidade. Supondo que temos apenas um bit para ser somado.CarryIn) + (a. A ALU é construída basicamente por quatro blocos básicos de hardware: portas AND. Lembre-se que a máquina trata com números representados em complemento a 2. Para completar o projeto de uma ALU de n bits podemos conectar n somadores de um bit. As implementações de operações lógicas são as mais simples de serem realizadas. b . Raciocínio semelhante é realizado para detectar a ocorrência do underflow numa subtração. Figura 41.br 9 www. Isto porque operandos com sinais contrários nunca podem ser maior do que qualquer dos operandos. Pode existir a detecção por hardware que gera uma exceção. A seguir mostr-se as operações de soma (6+7) e subtração (7-6) bit a bit entre dois números representados com 4 dígitos binários. dentro do processador. NOT (inversores) e multiplexadores.

é necessário desenvolver um algoritmo em hardware que seja eficiente para realizar a multiplicação. da direita para a esquerda. Naturalmente um string de 0s não precisa ser considerado. Este efeito é realizado acrescentando uma entrada complementada de b ao somador e ativando o carry in do bit menos significativo para um. ci Qualquer equação lógica pode ser implementada com uma lógica de dois níveis. coloque uma cópia do multiplicando (multiplicando x 1) no lugar apropriado. e 0 na metade à esquerda. www. Testa se Produto é igual a 0 ou 1. se o dígito do multiplicador for igual a 0. Produto = 0. podemos substrituir um string de 1s no multiplicador por uma subtração quando encontramos o primeiro 1. Uma observação importante é que o número de bits do produto final (n+m) é maior do que o número de bits do multiplicando (n) ou do multiplicador (m). Ele foi elaborado a partir da constatação de que com a capacidade de somar e de subtrair números existem várias maneiras de se calcular um produto. é necessário que seja detectada a divisão por zero. Subtrai o registrador Divisor da metade à esquerda do registrador Resto e armazena o resultado na metade esquerda do registrador Resto. A grande vantagem do algoritmo de Booth é tratar com facilidade os números com sinal. Mesmo esta formulação mais simplificada pode gerar equações muito grandes e. 2.concursosdeti. Porém.b. Desloca o registrador Produto 1 bit à direita. Divisão A divisão é a operação recíproca da multiplicação.br 10 www. Multiplicação Para realizar a multiplicação são necessários dois operandos. ci) + (ai . Além disso. e o Quociente na metade à direita. e por uma soma ao encontrarmos o último 1 do string. O algoritmo da multiplicação diz que os dígitos do multiplicando devem ser multiplicados pelos dígitos do multiplicador um de cada vez. Baseado nesta observação. temos apenas duas possibilidades de escolha. os programas usam a divisão simplesmente para obter o resto. O problema com o somador de carry propagado está relacionado a velocidade de propagação do carry. soma o Multiplicando à metade esquerda do Produto e coloca o resultado na metade à esquerda do resgistrador Produto. Algoritmo da divisão Da mesma forma que foram combinados registradores na multiplicação. se o dígito do multiplicador for igual a 1.Fundamentos da Computação LFG-TI Prof. o Resto e o Quociente. bi) + (ai + bi) . Além disso. 6. bi) = (ai . Booth buscou atingir maior velocidade de processamento utilizando operações de deslocamento. a multiplicação também precisa tratar a ocorrência de overflow.com. Por exemplo.brunoguilhen. Utilizando a abreviação ci para representar o iésimo bit de carry. A simplicidade do projeto do hardware de um somador para números de complemento a 2 demonstra porque esta representação tornou-se um padrão para operações aritméticas inteiras em computadores. um multiplicando e um multiplicador para gerar um operando produto. que ainda hoje são operações mais rápidas do que operações de soma. Para solucionar este problema existem diversos esquemas para antecipar o carry. se desejarmos maior velocidade na multiplicação de números inteiros por uma potência de 2. ci Os termos (ai . deslocando os produtos intermedários um dígitos à esquerda em relação ao imediatamente anterior. pois os registradores Produto e Multiplicador podem combinados em um só. também na divisão são combinados dois registradores. ignorando o quociente. Bruno Guilhen A operação de subtração pode ser realizada somando-se o minuendo com a negação do subtraendo. portanto levar a circuitos lógicos relativamente grandes e caros. Assim. Dentre as operações aritméticas é a que aparece menos freqüentemente nos códigos dos programs. O somador então calcula a + b + 1.com. Considerando os dígitos binários 0 e 1. Às vezes. passa ao item 4. 3. Num projeto de hardware a velocidade é um fator crítico. Fim. A relação entre os componentes da divisão pode ser expressa da seguinte forma: dividendo = quociente x divisor + resto.br . Os somadores que utilizam o esquema de carry lookahead baseiam sua implementação em vários níveis de abstração. obtemos: ci + 1 = gi + pi . 1. 2. Usando estas relações para definir ci + 1. e produzidos dois resultados o quociente e o resto. dependendo do número de bits a serem somados. a cada passo da multiplicação: 1. meio e fim de um string de 1s. 5. Um método elegante de multiplicar números com sinal recebeu o nome de algoritmo de Booth. ci) + (ai . o dividendo e o divisor. No algoritmo da divisão são utilizados dois operandos. coloque 0 (multiplicando x 0) no lugar apropriado. O algoritmo começa com o Multiplicador na metade à direta do registrador Produto. que é matematicamente inválida. Verifica se foram realizadas todas as repetições necessárias de acordo com o tamanho da palavra. 4. Ao escolhermos a versão invertida de b obtemos: a+ b + 1 = a + ( b + 1) = a + (-b) = a . basta que utilizemos operações de deslocamento indicando a quantidade de deslocamentos igual ao expoente. podemos escrever a equação do carry como: ci = (bi . nestes esquemas são utilizadas mais portas lógicas o que provoca um aumento no custo. 1. O raciocínio de Booth foi classificar os grupos de bits como início. se não volta ao item 1. Desloca o registrador Resto 1 bit à esquerda. que é realizada seqüencialmente. O algoritmo começa com o Resto na metade à esquerda do registrador Resto. Um dos esquema para antecipar o carry é denominado carry lookahead. Produto = 1. bi) e (ai + bi) são tradicionamente chamados de gerador (gi) e propagador (pi). respectivamente. onde o resto é sempre menor que o divisor. Algoritmo da multiplicação Este algoritmo precisa apenas de dois passos principais: o teste do produto e o seu deslocamento. ou 2.

Não. Fim. na sua essência. retorna ao passo 3. Não. retorna ao passo 3. faça o sinal do produto positivo se ambos os sinais dos operandos originais são os mesmos. Testa se Resto é menor do que 0. arredonde a mantissa para o número de bits apropriado. enquanto o aumento do número de bits reservados ao expoente aumenta o intervalo de variação dos números representados. Soma os expoentes com peso dos dois números. Some as mantissas. caso contrário o sinal é negativo. Resto = 0. Testa se resultado está normalizado. 6. Fim. 2. Resto < 0. 4. 7. Bruno Guilhen 3. subtraindo o valor do peso da soma para obter o novo expoente. deslocando à direita e incrementando o expoente. 8. 6.com. Verifica se foram realizadas todas as repetições necessárias de acordo com o tamanho da palavra. 3. Sim. Fim. mas é necessária uma manipulação extra nos expoentes e para a normalização do resultado. Algoritmo da multiplicação em ponto flutuante 1.Fundamentos da Computação LFG-TI Prof. Outra questão que os projetistas devem decidir é se vão ser utilizados os mesmos registradores tanto para números inteiros quanto para números de ponto flutuante. Desloca a metade a esquerda do registrador Resto 1 bit à direita. 5.br 11 www. Deve ser observado que as interrupções relativas ao overflow e ao underflow também ocorrem na representação em ponto flutuante. se não volta ao item 1. Os benefícios estão no fato de não precisar aumentar o tamanho do campo nas instruções para diferenciar os operandos e aumentar a banda passante dos registradores. Não. Multiplique as mantissas. A aritmética computacional que manipula os números binários em notação científica normalizada é denominada de aritmética de ponto flutuante. passa ao item 6. inserindo 0 no novo bit menos signifiativo. A adoção deste padrão facilita a portabilidade de programas (precisão simples = 1 bit de sinal. 4. precisão dupla = 1 bit de sinal. 6. www. 11 bits de expoente e 52 bits de mantissa + 1 implícito = 53). 5.br . Teste se overflow ou underflow. Teste se overflow ou underflow. Normalize a soma. Compare o expoente dos dois números. Porém. respectivamente. 9. Algoritmo da adição em ponto flutuante 1. gera exceção. deslocando à direita e incrementando o expoente ou deslocando à esquerda e decrementando o expoente. Sim. arredonde a mantissa para o número de bits apropriado. Desloque o menor número à direita até que seu expoente se iguale ao maior número. desloca o registrador Resto 1 bit à esquerda. inserindo 1 no novo bit mais à direita. A partir de 1980 todos os computadores projetados adotam uma representação padrão para números em ponto flutuante denominada IEEE 754.com. overflow e o underflow ocorrem quando o expoente é muito grande ou muito pequeno. gera exceção. Não. O impacto maior está na criação de um conjunto de instruções de transferência de dados para mover os dados entre os registradores de ponto flutuante e a memória. 9. Sim. para ser armazenado no espaço reservado a ele. utilizam as operações inteiras correspondentes para operar as mantissas. Ponto Flutuante Assim como os números decimais podem ser representados em notação científica normalizada os números binários também podem. 8.concursosdeti. Normalize o produto se necessário. 4. neste caso. 3.brunoguilhen. restaura valor original com Divisor + metade esquerda do Resto. 7. A adição e a multiplicação com números de ponto flutuante. 7. 8 bits de expoente e 23 bits de mantissa + 1 implícito = 24. Os projetistas do hardware devem encontrar um compromisso entre a mantissa e o expoente dos números em ponto flutuante. A relação entre e mantissa e o expoente é expressa do seguinte modo: o aumento do número de bits reservados à mantissa aumenta a precisão do número. armazenando na metade esquerda do registrador Resto e deslocando 1 bit à esquerda. A adoção de registradores diferentes aumenta ligeiramente o número de instruções necessárias a execução do programa. Testa se resultado está normalizado. Não. 5. 2.

Sign up to vote on this title
UsefulNot useful