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

as informações ou os sinais de controle conveniente para ser implementado em sistemas digitais.com.P.concursosdeti.) 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).  É o verdadeiro nível de linguagem de máquina. 0 de Processamento (UCP ou CPU). / U. 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. (U. As setas indicam a direção Infelizmente. A interconexão básica dessas III. a unidade de entrada e a unidade de saída. Por outro lado. 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. a CPU usualmente é implementada em níveis de tensão. residente em memória permanente (ROM).brunoguilhen. Sistema de Numeração e Codificação unidades é mostrada na figura 1. a unidade de controle.L. memória. 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.  Algumas vantagens do nível de microprogramação sãode falicitar o projeto e a construção dos circuitos digitais.  Serve para executar as microinstruções do nível 1. como sistema básico de numeração para suas operações. Bruno Guilhen do firmware. Por esse motivo. o sistema de numeração decimal não é na qual os dados. flexibilizar e possibitar o desenvolvimento de instruções mais potentes em nível de máquina convencional. quase todos os sistemas um único chip.Fundamentos da Computação LFG-TI Prof. A seguir é possível acompanhar o esquema de um compudor dividido em seis níveis. UCP. essenciais: a unidade lógica e aritmética (ULA ou ALU). Esses registradores também possibilitam o armazenamento www. Isso é feito para separar a 9).  Nem todas as máquinas possuem este nível como é o caso das máquinas RISC. 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.C.br 2 www. o microprocessador. dispositivos de comunicação e interfaces.A./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. Em um eletrônico simples e preciso que opere com apenas dois microprocessador. O microprograma. é muito fácil projetar um circuito o “cérebro” real do processador das outras unidades.br . é muito difícil projetar um equipamento Na figura 1. estão fluindo. 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. a unidade de memória. 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.C. bem como.com. disposistovos de E/S.O. Por exemplo.

como: 1 Kilobyte = 1 KB 1 Megabyte = 1MB 1 Gigabyte = 1GB 1 Terabyte = 1TB 1 Petabyte = 1PB 1 Exabyte = 1EB 210 = 1.com.22 + 0.br 3 www. escreve-se o número e um www. utiliza-se certas unidades de medida em bytes. o número decimal 20 é representado por 2010.23 + 1. é um sistema posicional em que cada digito (bit) possui um certo peso de acordo com a posição relativa do bit menos significativo (LSB). de modo que uma seqüência de 8 bits recebe um nome especial: ela é denominada byte. b. O primeiro método é quando o número decimal é simplesmente expresso como uma soma de potências de 2. No sistema binário há apenas dois símbolos ou valores possíveis para os dígitos: 0 e 1. A base hexadecimal é composta por dígitos e letras da seguinte forma: 0 a 9 e as letras a. 1 trilhão de bytes) 250 B = 1024 TB 260B = 1024 PB índice indicando a base em que está representado. para cada inteiro positivo n.160 = 1116 1210 = 1. e os bits 1s e 0s são colocados nos locais apropriados. visto que. todas as posições têm de ser consideradas. No sistema binário. respectivamente. como por exemplo.024 bytes (aprox.21 + 0. 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. Bruno Guilhen embora outros sistemas de numeração sejam. existe uma representação (a prova deste teorema você encontra em qualquer bom livro de teoria numérica. 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. Nesse método executa-se a divisão sucessiva pelo decimal 2 até achar um quociente 0.com. A seguir será trabalhado os principais métodos de conversão em base. e e f. mil bytes) 220 = 1024 KB (aprox. achando zero no quociente pega-se os restos Base de um Sistema de Numeração Como se sabe.concursosdeti. Exemplos: 1210 = 1. Entretanto.024 MB (aprox.80 Nos próximos capítulos esse assunto de mudança de base será melhor abordado. A base octal é representada com 8 dígitos que variam entre 0 e 7. 1 bilhão de bytes) 240 B= 1. Tem-se portanto. 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. 1 milhão de bytes) 230 B= 1. Sistema de numeração binário O sistema de numeração binário é o mais importante sistema de numeração em sistemas digitais.brunoguilhen. O Byte A maioria dos microcomputaodres manipula e armazena informações e dados binários em grupos de 8 bits. Então. usados juntamente com o sistema binário.161 + 1. + as onde a0>0 e cada ai é um inteiro não negativo maior que k. o de George E.br . c. 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). muitas vezes.81 + 4.101 + 2. em Eletrônica e Computação. é comum que o sistema binário use um numero maior de dígitos para expressar um determinado valor.100 = 1210 1710 = 1. d. isto é. 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.Fundamentos da Computação LFG-TI Prof. Um outro exemplo de conversão de decimal para binário é o método de divisões sucessivas por 2. o qual será usado a partir de então. o termo digito binário (binary digit) é quase sermpre abreviado com o uso do termo bit. centenas e até bilhões de bytes.. Lembre-se de que precisamos de 3 ou 4 dígitos binários para a mudança de base octal e hexadecimal.. Conversão entre Diferentes Bases As bases octal e hexadecimal também são muito úteis em computação.024 GB (aprox. Como o computador utiliza dezenas.20 = 11002 1210 = 1. Andrews). n = a0ks + a1ks-1 + . Um byte é constituído sempre de 8 bits e pode representar quaisquer tipos de dados ou informações. Esta representação de n é unica e é chamada de representação de n na base k.

aquele que fica mais a esquerda) será o último resto. acentos e sinais diversos ( por exemplo: <.br .com. como é usado no idioma inglês moderno. 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. Sistema de numeração Octal. também. a fim de possibilitar a comunicação entre os computadores. De acordo com os mesmos métodos utilizados anteriormente. No modo extendido o ASCII forma 256 caracteres. 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. Assim. entendido por quase todos os computadores. números. 8. e visa padronizar a forma pela qual os computadores representam letras. mas. 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. Conversão de octal para decimal 372(8) = 3x(82) + 7x(81) + 2x(80) = 250(10) 24. impressoras e programas de edição de texto.brunoguilhen. {. 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. em um total de 2N números diferentes. pode-se representar números decimais na faixa de 0 a 2N – 1. Assim cada dígito de um número octal pode ter qualquer valor de 0 a 7. 6. Vale lembrar que cada dígito hexadecimal é representado por um grupo de 4 digitos binários.com. 7.concursosdeti. O sistema octal tem base oito. Assim. 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. 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. objetivando permitir a troca de dados entre máquinas de diferentes tipos e fabricantes.br 4 www. 3. só que neste caso essa divisão será por 16. O "American National Standards Institute" aceitou a proposta de Robert W. 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. Por exemplo. foi proposto o uso de um código comum.75(10) Conversão de decimal para octal. É baseado no alfabeto romano. o que significa que ele tem oito dígitos possíveis: 0. ASCII é um código numérico usado para representar os caracteres. ] ) e alguns códigos de controle ( <Crtl> ) que são utilizados para converter todos os símbolos em números binários. 1. Veja um exemplo de conversão do número 356 da base hexadecimal para a base decimal. 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).Fundamentos da Computação LFG-TI Prof. os quais efetivamente podem ser processados. 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.6(8) = 2x(8 ) + 4x(8 ) + 6x(8 ) = 20. que usa a escala do decimal 0 a 127. Assim. Veja um exemplo de conversão do número 26610 para a base octal. 4. 5. O código permite não só uma melhor compreensão sobre a lógica do funcionamento do computador. 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. ele tem 16 símbolos. hoje conhecido como código ASCII. Veja a conversão do decimal 42310 para Hexadecimal. 2. O sistema de numeração octal é muitas vezes utilizado no trabalho com computadores digitais.

Esses caracteres de controle tiveram sua origem nos primórdios da computação. pois os primeiros códigos (de 0 a 31) foram reservados para caracteres de controle. ou seja. / 0 1 2 3 4 5 6 7 8 9 : . .brunoguilhen. . 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.concursosdeti. E eles são numerados de 32 a 126.o caráter 27 representa a função "escape" determinada pela tecla <ESC>.Fundamentos da Computação LFG-TI Prof. encontrada no canto superior esquerdo nos teclados. 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 ! " # $ % & ' ( ) * + . quando eram utilizadas máquinas Teletype (como máquinas de escrever eletro-mecânicas).com.com.o caráter 10 representa a função "LINE FEED". que faz com que uma impressora avance seu papel. < = > ? 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. portanto muitos deles são dirigidos a estes equipamentos.br . cujos símbolos não aparecem no teclado. .o caráter 24 representa a função "cancel". Por exemplo: . que controlam funções ou equipamentos. Bruno Guilhen possibilita a utilização de caracteres. É importante notar que há apenas 95 caracteres que podem ser impressos.br 5 www.

br .brunoguilhen.br 6 www.concursosdeti. Bruno Guilhen Tabela ASCII – Extendida. Representa caracteres extras.com. caracteres especiais para desenhas figures www.com.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. caracteres de línguas mortas e caracteres especiais para desenhos.

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful