Apostila Geral Arq Comp01

85
Prof. Fábio Lucena Veloso 1 Instituto Politécnico Curso: Tec. Redes de Computadores Disciplina: Organização de Computadores Prof.: Fábio Lucena Veloso

description

teste de comando linux

Transcript of Apostila Geral Arq Comp01

Page 1: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 1

Instituto Politécnico

Curso: Tec. Redes de Computadores

Disciplina: Organização de

Computadores Prof.: Fábio Lucena

Veloso

Page 2: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 2

Histórico:

500 A.C. - 1880 - Dispositivos mecânicos - Os babilônios usavam o ábaco como equipamento de efetuar cálculos. Até hoje ainda é usado na China. A primeira evolução do ábaco data de 1642, quando o filósofo francês Blaise Pascal construiu um contador mecânico com rodas dentadas, que somava e subtraía. Esse equipamento utilizava o conceito de vai 1 e de somar complementos a fim de subtrair. A sua aritmética era decimal (engrenagens com 10 dentes). Algum tempo depois, o matemático alemão Gottfried Leibniz construiu uma calculadora mais completa que a de Pascal, porque efetuava as 4 operações. Estas 2 máquinas eram manuais. No início do século 19, construiu-se uma máquina para tecelagem, cuja produção era inteiramente realizada de forma mecânica, e controlada automaticamente por instruções registradas em cartões perfurados. Um dos últimos trabalhos pioneiros em computação mecânica foi realizado por Charles Babbage, em 1823, com a finalidade de gerar tabelas de navegação. A primeira máquina de Babbage realizava cálculos com números de até 15 algarismos, e polinômios de até terceiro grau, e era movida por um motor a vapor. A segunda máquina (máquina analítica) era um computador capaz de armazenar 1.000 números de 20 algarismos e possuía um programa que podia modificar o funcionamento da máquina. Ela foi a precursora dos primeiros computadores eletrônicos, inclusive no seu método de ser programada por cartões perfurados. Apesar de mecânica a máquina analítica possuía os mesmos componentes de um computador atual: memória (rodas dentadas), processador (efetuando as 4 operações e com uma "unidade de controle” constituído de cartões perfurados) e entrada e saída (leitora e perfuradora de cartões, e uma impressora).

1880-1930 - Dispositivos eletromecânicos. Com a invenção do motor elétrico, surgiu uma grande quantidade de máquinas de calcular acionada por motores elétricos, utilizadas até a década de 1970, quando surgiram as calculadoras de bolso.Em 1889, Herman Hollerith desenvolveu o cartão perfurado para guardar dados (antes era usado para guardar programas), e uma máquina tabuladora, eletromecânica que contava e classificava informações armazenadas nos cartões perfurados. O censo americano de 1890 foi apurado com essa máquina em 2,5 anos, enquanto o de 1880 tinha consumido quase 10 anos de processamento manual. Hollerith criou em 1896 a Tabulating Machine Company, que acabou em 1924 se transformando na IBM. Os cartões perfurados foram utilizados até 1980.

1930-1945 - Componentes eletrônicos. Os computadores mecânicos tinham 2 problemas: baixa velocidade e pouca confiabilidade, devido ao desgaste das engrenagens. Assim, começaram as pesquisas com o uso da válvula, inventada em 1906. Algumas máquinas, como o Colossus foram criadas para resolver problemas específicos, mas não eram de uso geral.

1946 - O ENIAC foi o primeiro computador eletrônico do mundo, e foi criado para o exército americano poder calcular trajetória de projéteis e fazer outros cálculos complexos, efetuando 10.000 operações por segundo. Continha quase 18000 válvulas e ocupava 167 metros quadrados. Ainda era uma máquina decimal, e não binária. A sua programação era feita através de chaves e cabos. Os computadores à válvula são classificados como computadores de PRIMEIRA GERAÇÃO

Década de 195 0 - Com a invenção dos transistores, que vieram substituir as válvulas, não só foi possível a construção de rádios de pilha e satélites artificiais, mas também de computadores menores, mais resistentes, rápidos e baratos (ainda que apenas grandes empresas pudessem ter um computador).Estes computadores transistorizados foram classificados como de SEGUNDA GERAÇÃOA IBM lançou o 1401, uma máquina comercial de grande sucesso.

Década de 196 0 - A IBM lança a série batizada de System /360. Este 360 indica o seguinte: o dígito 3 significa que é um computador de TERCEIRA GERAÇÃO, enquanto o 60 indica que foi projetado na década de 60. Esses computadores são ainda menores que os de segunda geração, porque os transistores foram substituídos por circuitos integrados, aonde um componente substitui milhares de transistores.

Page 3: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 3

Década de 197 0 - Os novos computadores IBM passaram a ser da série System /370, não havendo profunda mudança tecnológica (ainda terceira geração), mas o 70 indica a mudança de década. Apesar de não se ter uma mudança de geração, os circuitos integrados passaram a substituir muito mais transistores que os da série anterior, já que usavam a tecnologia LSI (large scale integration - Integração em larga escala), permitindo que os computadores diminuíssem um pouco de tamanho.Em termos de computação pessoal, nessa década começaram os primeiros micros de 8 bits, antepassados pré-históricos dos atuais microcomputadores. Nessa década começou a verdadeira evolução e disseminação da computação no mundo. Com o advento dos circuitos VLSI (very large scale integration) os computadores entraram na sua QUARTA GERAÇÃO, quando os processadores cabem inteiramente em apenas uma pastilha, dando origem não só ao advento da micro informática, como também o tamanho e o preço dos computadores de grande porte começam a cair drasticamente, fazendo com que pequenas e médias empresas possam dispor de computadores de grande, médio e pequeno porte.

1973 - A Intel lança o microprocessador 8080, e o "Altair" foi o primeiro microcomputador baseado nesse "chip". Nasce o CP/M, o primeiro sistema operacional para micros (Pai do DOS)

197 5 - A revista Eletrônica Popular mostra na capa o Altair, o que influencia dois estudantes de Harvard: Paul Allen e Bill Gates, que oferecem ao fabricante do Altair uma linguagem BASIC. O fabricante aceita e os dois desenvolvem a linguagem, usando um emulador do 8080 num computador PDP-10.

197 6 - É criada a Apple, que fabrica o seu primeiro microcomputador, baseado no processador 6502.

1977 - Criado o Apple II, com 4K de memória

1978 - A Intel lança o microprocessador 8086, de 16 bits. Este processador dá início a uma série de microprocessadores, que ficam conhecidos como a família 80X86, (80286, 80386, 80486 e Pentium).

1979 - A Intel lança o microprocessador 8088, versão de 8 bits do 8086 que não decolou na época, porque os periféricos disponíveis eram de 8 bits. Neste mesmo ano, a Apple lança o programa Visicalc, a primeira planilha eletrônica do mercado. Este programa torna-se um sucesso nas empresas e nos lares. A 3Com Corporation desenvolve tecnologia de rede, para conexão de computadores que compartilharão dados.

1980 - A Microsoft recebe permissão da AT&T para desenvolver um sistema Unix, mas não libera o uso do nome. Assim o sistema operacional Unix para computadores PC passa a se chama Xenix. Nessa época, a IBM resolve não mais ignorar o mercado de microcomputadores, e decide-se pelo processador 8088, de 8 bits, devido à farta oferta de periféricos de 8 bits. A escolha do sistema operacional ficou inicialmente com o CP/M, que era um padrão na indústria de micros. O problema é que tinha de ser atualizado, pois baseava-se no Intel 8080, e a IBM queria um para o 8088, que seria portável para o 8086, de 16 bits. Aí entrou em cena a Microsoft, que desenvolveu o MS-DOS, baseado no CP/M, e licenciou-o para a IBM com o nome de PC-DOS.

1981 - Em agosto, a IBM apresenta o IBM Personal Computer, o primeiro dos PCs. Sua configuração básica era: Processador Intel 8088, 16KB de memória, teclado e uma porta para conexão de um gravador para armazenar programas e dados. O monitor era um aparelho de TV. Esta configuração, hoje ridícula, custava nos Estados Unidos 1.565 dólares. A versão expandida incluía 64KB e uma unidade de disco flexível de 160KB de capacidade. A configuração topo de linha incluía um monitor monocromático, 2 unidades de disco e uma impressora matricial, custando à bagatela de 4.425 dólares Nesse ano, Bill Gates dá uma olhada no protótipo do Macintosh, que seria lançado em 1984, e dispara um projeto secreto, chamado Interface Manager, uma interface gráfica para o IBM PC.

Page 4: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 4

1982 - Lançado o Intel 80286, versão de 16 bits mais potente que o 8086. Peter Norton lança a primeira versão do Norton Utilities. A Lotus Corporation lança o Lotus 1-2-3, que desbanca o Visicalc e torna-se um padrão de planilha eletrônica.

1983 - A IBM lança o PC-XT, que é o mesmo velho PC, com uma unidade de disco e com mais memória. Seu disco rígido possuía a impressionante capacidade de 10MB. A memória vinha com 128K e o disco flexível armazenava 360KB. É criada a Borland, e o seu primeiro produto, o Turbo Pascal, torna-se um grande sucesso.A Microsoft anuncia publicamente que está desenvolvendo uma interface gráfica para PCs.

198 4 - A Apple lança o Macintosh. A IBM lança o PC-AT, baseado no 80286. O AT vem com 512KB de memória, um disco de 30MB, um monitor gráfico EGA e uma unidade de disco flexível de 1.2MB. É anunciada a primeira versão do Windows.

1985 - A Intel lança o 80386, um verdadeiro processador de 32 bits. A Aldus lança o PageMaker para o Macintosh, o primeiro software de editoração eletrônica para computadores. É anunciado o computador Amiga, com sistema operacional multitarefa e com recursos de multimídia. Em novembro, a Microsoft lança o Windows 1.0, que apesar de ser um fracasso, quase causa um problema jurídico entre a Apple e a Microsoft, devido à aparência e características do Windows serem semelhantes ao sistema operacional do Macintosh. Como a Microsoft estava desenvolvendo o Word e o Excel para a Apple, houve a ameaça de se parar com o desenvolvimento destes produtos, e a Apple retirou o processo.

1986 - É criado o primeiro laptop da IBM, com uma unidade de disco flexível de 3,5"

1987 - A IBM lança o PS/2, baseada na arquitetura de micro canais ou barramento MCA. É criada placa gráfica VGA, que se torna o padrão da indústria. Esta placa permite a geração de 480 X 640 pontos na tela do monitor.A Novell passa a dominar o mercado de redes com o NetWare.

1988 - A Microsoft e a IBM apresentam o sistema operacional OS/2, versão 1.0.

1989 - É lançado pela Intel o 80486. Este processador é uma integração do 80386 com o coprocessador 80387 num único chip. Os coprocessadores são utilizados para acelerar programas científicos, já que possuem um conjunto de instruções que operam diretamente números em notação científica (ponto flutuante).Em abril é estabelecido o novo padrão de vídeo, o SVGA, aumentando a resolução e número de cores do padrão VGA.199 0 - A Microsoft lança o Windows 3.0. Agora sim, o Windows torna-se um sucesso, vendendo 1 milhão de cópias em 4 meses.A IBM, devido ao fracasso da linha PS/2, com seu barramento MCA, cria o PS/1, equipado com barramento ISA (Industry Standard Architecture).

1991 - É estabelecido um padrão de compressão de imagens, o JPEG. A Borland compra a empresa que desenvolveu o dBase.

1992 - A IBM anuncia reestruturação corporativa, e redução de mão de obra. A Microsoft adquire a empresa fabricante do Foxbase. Com esta aquisição, a Microsoft torna-se a maior empresa de software para PCs.

1993 - É lançado o Pentium, a quinta geração de microprocessadores para PC (Não confundir com computador de quinta geração). Com este nome, é quebrada a tradição de se numerar processadores. A motivação disso foi evitar que concorrentes fabricassem seus chips com a mesma nomenclatura da Intel.

Page 5: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 5

Realmente, os outros fabricantes continuaram a numerar seus processadores, criando em paralelo o 80586 e 80686.A Microsoft lança o Windows for Workgroups, uma versão em rede do Windows. A IBM lança o OS/2 versão 2.1. O número de aplicativos desenvolvidos para o OS/2 começa a crescer a partir daqui.A Microsoft lança o Windows NT, aonde foram incorporados ao sistema operacional recursos de rede.

1994 - A Internet sofre uma explosão de popularidade, devido a Word Wide Web, um recurso que permite a distribuição de páginas gráficas multimídia, e com vinculação entre elas (hiperlinks).

1995 - Em agosto é lançado o Windows 95, que incorpora a multitarefa real, melhor proteção de memória e facilidade de instalação de novos dispositivos de hardware (plug and play). Neste semestre, a Internet foi disponibilizada no Brasil. É lançada a linguagem Java.

1996 até hoj e - O foco da informática está na Internet e na Web. Além do aumento significativo das páginas, de empresas, instituições e pessoas físicas, a disputa pelo domínio do mercado de Browsers faz com que versões novas sejam lançadas a intervalos de meses, com ampla distribuição gratuita pela própria Internet.

Page 6: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 6

Conceituação:

Processamento de dados:

Um computador é uma máquina (conjunto de partes eletrônicas e eletro-mecânicas) capaz de sistematicamente coletar, manipular e fornecer resultados da manipulação de informações para um ou mais objetivos. Por ser uma máquina composta de vários circuitos e componentes eletrônicos, também é chamada de equipamento de processamento eletrônico de dados.Processamento de dados consiste, então, em uma série de atividades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informações a partir de outras obtidas em inicialmente. Ou seja, o objetivo do processamento será transformar dados em informações.

Computador = sistema de computaçãosistema ou equipamento eletrônico de processamento de dados conjuntos de componentes eletrônicos e eletro-mecânicos.

Capaz de: coletar, armazenar, processar, recuperar e apresentar dados.

A manipulação das informações coletadas no início da atividade chama-se processamento;As informações iniciais são usualmente denominadas dados. O termo dado e informação podem ser tratados como sinônimos ou como termos distintos;Dado pode ser definido como a matéria prima originalmente obtida de uma ou mais fontes (etapa de coleta) e informação, como o resultado do processamento, isto é, o dado processado ou acabado.Nossa figura abaixo mostra o esquema básico de um processamento de dados (manual ou automático), que resulta em um produto acabado: a informação. Informação subentende dados organizados (segundo uma orientação específica) para o atendimento ou emprego de uma pessoa ou grupo que os recebe. Como o conhecimento e a tomada de decisão são importantes em várias áreas e em diferentes níveis hierárquicos de uma organização, a informação para uma determinada pessoa ou grupo pode ser considerada como um dado para outra. Dado e informação são conceitos relativos, dependem do contexto. O que é informação para um pode ser um simples dado para outro ou o mesmo em outro momento.

DADO PROCESSAMENTO INFORMAÇÃO

Principais operações no processamento de dados:

Cálculos;Pesquisa ou busca (search); Exemplo: verificar se um nome consta da lista de aprovados no vestibular.Ordenação (sort); Exemplo: colocar uma lista de nomes em ordem alfabética.Seleção (selection); Exemplo: selecionar os alunos que ficaram em prova final.Classificação (classification); Exemplo: percorrer uma lista de alunos e gerar outras duas classificando cada um como aprovado ou reprovado.

Page 7: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 7

Sistemas.

O processamento eletrônico de dados, devido à sua própria natureza (conjunto de componentes separados que se integram segundo procedimentos e regras previamente estabelecidos), vem se desenvolvendo de acordo com conceitos de outra ciência; Teoria de sistemas.Um sistema pode ser definido de diferentes maneiras. Porém, a mais apropriada para nós é:

“Conjunto de partes coordenadas que concorrem para a realização de um determinado objetivo”. Atualmente, o enfoque sistêmico se faz presente em várias áreas do desenvolvimento comercial, científico, industrial e social.Sistemas de processamento de dados são aqueles responsáveis pela coleta, armazenamento, processamento e recuperação em equipamentos de processamento eletrônico, dos dados necessários ao funcionamento de um outro sistema maior; o sistema de informações.

O sistema de informações de uma empresa pode ser conceituado como o conjunto de métodos, processos e equipamentos necessários para se obter, processar e utilizar informações dentro da empresa. Desta forma, ele compreende não só o sistema de processamento de dados, como também todos os procedimentos manuais necessários a prover informações para um determinado nível de decisão de uma organização. Em qualquer organização, os sistemas de informações se desenvolvem segundo duas dimensões: “os componentes da organização”, isto é, seus diversos setores funcionais, e o “nível de decisão”, o qual obedece a uma hierarquia clássica.

Nível operacional (de execução corriqueira e imediata, de competência dos menores escalões);

Nível gerencial (de nível intermediário de competência da gerência setorial);

Alto nível da organização (de nível estratégico, de competência da diretoria).

O tipo de decisão tomada em cada nível requer um diferente grau de agregação da informação e, em conseqüência, diferentes tipos de relatórios e/ou apresentação e o uso da informação.

Dentro deste enfoque, um sistema de processamento de dados compreende duas partes: “o sistema de computação” (o computador e os programas básicos) e os “sistemas de aplicação”. O primeiro, normalmente é fornecido completo pelo fabricante do equipamento, e o último, desenvolvido pelo usuário ou por terceiros, especificamente dedicado à aplicação de interesse do usuário.

Sistema de computação:

Qualquer processamento de dados requer a execução de uma série de etapas que podem ser realizadas de forma manual ou automática por um computador. Tais etapas elaboradas e executadas passo a passo constituem o que chamamos de “programa”. Cada um dos passos mencionados é uma instrução diferente, ou ordem de comando, dada ao hardware, objetivando a realização de uma determinada ação. Um programa é um conjunto de instruções.

A figura abaixo demonstra um esquema de execução manual de um programa observando-se algumas etapas:

ENTRADA PROCESSAMENTO SAÍDA

Page 8: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 8

Ex. um programa para somar 100 números e imprimir o resultado

Entrada – digitação do programa e dos dados

Processamento – cálculos e testes

Saída – impressão dos resultados

As etapas de um algoritmo são as instruções que deveram ser executadas por uma máquina (quando falamos de computadores); o conjunto de instruções constitui o que chamamos de programa. Um programa de computador é a formalização de um algoritmo em linguagem inteligível pelo computador.Assim como o operador deve ter entendimento dos passos do programa, um computador precisa entender cada instrução, de modo a executar corretamente a operação a que se pretende. O operador entende (português) sua linguagem e comunicação com outras pessoas, já os computadores possuem linguagem própria (binário). Todo dado coletado pelos computadores, as instruções por ele executadas, bem como os resultados de um processamento são sempre constituídos de conjuntos ordenados de 0 e 1.No entanto, essa linguagem, chamada linguagem de máquina, é para nós e seres humanos tediosa e difícil, por essa razão foram desenvolvidas outras linguagens, mais próximas do nosso entendimento, genericamente chamadas de linguagens de programação. Atualmente, existem dezenas dessas linguagens. Cada uma dessas linguagens possuiu regras próprias e rígidas de sintaxe. O programador escreve o programa através da descrição instrução por instrução em uma dessas linguagens. Tal programa, no entanto, não pode ser diretamente executado pela máquina, visto que as linguagens de programação são apenas um modo do operador se comunicar com o computador. A máquina somente entende e executa instruções referentes ao seu conjunto de instruções (linguagem de máquina). Para se executar um programa escrito em uma dessas linguagens necessitamos de programas especiais que façam a conversão da linguagem utilizada para a linguagem de máquina. Esses programas são chamados de compiladores.

O conjunto formado pelos circuitos eletrônicos e partes eletro-mecânicas de um computador é conhecido como Hardware, é a parte física, visível do computador.

Software são programas, de qualquer tipo e em qualquer linguagem que são introduzidos na máquina para fazê-la trabalhar. É a parte lógica do computador.

Page 9: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 9

Sistemas de Numeração:

Os sistemas numéricos foram criados pelos homens para representar a quantidade relacionada às suas observações. Tais sistemas foram desenvolvidos por meio de símbolos, caracteres e do estabelecimento de regras para a sua representação gráfica. O número de caracteres que define um sistema é chamado de base ou raiz do sistema. A correta notação, para representarmos a base que identifica um símbolo qualquer, faz- se colocando-a como subscrito à direita do caractere menos significativo do valor que está sendo identificado, como por exemplo: 1610 que representa o algarismo dezesseis na base 10. Os sistemas abordados serão:

Decimal Sistema de base 10 ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 );Binário Sistema de base 2 ( 0, 1 );Octal Sistema de base 8 ( 0, 1, 2, 3, 4, 5, 6, 7 ) eHexadecimal Sistema de base 16 ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F )

Observe que as seis primeiras letras maiúsculas do alfabeto representam os caracteres, equivalentes aos decimais 10, 11, 12, 13, 14 e 15, do sistema de base 16.

O Sistema Binário de Numeração:

O sistema binário de numeração é um sistema no qual existem apenas dois algarismos:- o algarismo 0 (zero),- o algarismo 1 (um).

Para representarmos a quantidade zero, utilizamos o algarismo (0) e para representarmos a quantidade um utilizamos o algarismo (1).

Para representarmos a quantidade dois, por exemplo, utilizamos o algarismo um seguido do algarismo (0). O algarismo (1) significará que temos um grupo de dois elementos e o (0) um grupo de nenhuma unidade, representando assim o número dois.

Decimal Binário0 01 12 103 114 1005 101. .. .. .

Page 10: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 10

Conversão do Sistema Binário para o sistema Decimal

Tomemos o número decimal 594. Este número significa:

5 x 100 + 9 x 10 + 4 x 1 = 5945 x 100 = 5 x 10 2 (centena)9 x 10 = 9 x 101 (dezena)4 x 1 = 4 x 100 (unidade)

Nota-se que o algarismo menos significativo (o algarismo 4) multiplica a unidade (1 ou 100 ), o segundo algarismo (nove) multiplica a dezena ( 10 ou 101 ) e o mais significativo (cinco) multiplica a centena (100 ou 102).

A soma desses resultados irá representar o número. A base deste sistema é o número 10 (dez).

A base do sistema binário é o número 2 (dois). Utilizando um número binário qualquer, o número 101 que equivale ao número 5 no sistema decimal e aplicando o conceito básico de formação de um número, obtêm-se a mesma equivalência, convertendo-se o número para o sistema decimal:

1 0 122 21 20

1 x 22 + 0 x 21 + 1 x 20 = 1 x 4 + 0 + 1 = 510

0 número 101 na base 2 é igual ao número 5 na base 10.

Para melhor representação, é colocado como índice do número a base do sistema em que estamos trabalhando, ou seja:

1410 significará o número quatorze na base dez. (sistema decimal)

1102 significará o número seis na base dois. (sistema binário)

Exemplos: Converta o número 011102 em decimal.

É importante ressaltar que o zero à esquerda de um número é um algarismo não significativo.Logo 011102 = 11102

1 1 1 023 22 21 20

1 x 2 3 + 1 x 2 2 + 1 x 2 1 + 0 x 2 0 = 1410 logo: 11102 = 1410

Converta o número 10102 para o sistema decimal.

1 0 1 023 22 21 20

1 x23 + 0x22 + 1x21 + 0x20 = 1010 logo: 10102 = 1010

Page 11: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 11

Converta o número 11001100012 para o sistema decimal.

1 1 0 0 1 1 0 0 0 029 28 27 26 25 24 23 22 21 20

1 x 29 + 1 x 28 + 0 x 27 + 0 x 26 + 1 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 0 x 20 =

1 x 512 + 1 x 256 + 1 x 32 + 1 x 16 + 1 x 1 = 81710 logo: 11001100012 = 81710

Conversão do Sistema Decimal para o Sistema Binário

É evidente a necessidade da conversão do sistema binário para o decimal, pois se tivermos um número grande no sistema binário, onde fica difícil perceber a quantidade que ele representa. Transformando esse número em decimal, o problema desaparece.

Tomemos um número decimal qualquer, como por exemplo, o número 47. Dividindo o número por 2, temos:

47 ∟2 1 23 ∟2 1 11 ∟2 1 5 ∟2 1 2 ∟2 0 1 último quociente = algarismo mais significativo

O último quociente será o algarismo mais significativo e ficará colocado à esquerda. Os outros algarismos seguem-se na ordem até o 1° resto. Teremos então:

1 0 1 1 1 1

último quociente 5° resto 4° resto 3° resto 2° resto 1° resto

Então, temos: 1011112 = 4710

Tomemos outro número decimal qualquer, como por exemplo, o número 400. Temos:

400 ∟2 0 200 ∟2

0 100 ∟2 0 50 ∟2

0 25 ∟2 1 12 ∟2

0 6 ∟2 0 3 ∟2

1 1 algarismo mais significativo

Assim podemos escrever: 1100100002 = 40010

Page 12: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 12

Tomemos outro número decimal qualquer, como por exemplo, o número 552. Temos:

552 ∟2 0 276 ∟2

0 138 ∟2 0 69 ∟2

1 34 ∟2 0 17 ∟2

1 8 ∟2 0 4 ∟2

0 2 ∟2 0 1 algarismo mais significativo

Assim podemos escrever: 10001010002 = 55210

Números Binários, Decimais Fracionários e suas Conversões.

Tormemos o número 12,510

1 2 5101 100 10-1

Da tabela, temos: 1 x 101 + 2 x 100 + 5 x 10-1 = 12,510

Para um número binário, agimos da mesma forma.

Conversão de um número binário fracionário para o decimal

Tomemos o número 101,1012

1 0 1 1 0 122 21 20 2-1 2-2 2-3

Podemos escrever:

1x22 + 0x21 + 1x20 + 1x-1 + 0x-2 + 1x2-3

= 1x4 + 0x2 + 1x1 + 1x0,5 + 0x0,25 + 1x0,125

= 4 + 1 + 0,5 + 0 + 0,125 = 5,65210 logo: 101,1012 = 5,62510

Page 13: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 13

Tomemos o número 1010,11012

1 0 1 0 1 1 0 123 22 21 20 2-1 2-2 2-3 2-4

Podemos escrever.

1x23 + 0x22 + 1x21+ 0x20 + 1x2-1 + 1x2-2 + 0x2-3 + 1x2-4

= 1 x 8 + 1 x 2 + 1 x 0,5 + 1 x 0,25 + 1 x 0,0625

= 8 + 2 + 0,5 + 0,25 + 0,0625 = 10,812510 logo: 1010,11012 = 10,812510

Converta o número binário 111, 0012 em decimal.

1 1 1 0 0 122 21 20 2-1 2-2 2-3

1 x22 + 1x21 + 1 x20 + 0x2-1 + 0x2-2 + 1 x2-3

4 + 2 + 1 + 0,125 = 7,12510 logo: 111,0012 = 7,12510

Conversão de um número Decimal fracionário em Binário

Como exemplo, vamos transformar o número 8,375 em binário.

8,375 = 8 + 0,375

Transforma-se primeiramente a parte inteira do número, no caso, o número 8.

8 ∟20 4 ∟2 0 2 ∟2 0 1 algarismo mais significativo

Então, temos: 810 = 10002

Logo a seguir, transforma-se a parte fracionária. Para tal, utilizamos a seqüência:

0,375 Parte fracionária não inteirax 2 Base do sistema

Primeiro algarismo após a vírgula 0,750x 2

Segundo algarismo após a vírgula 1,500

Page 14: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 14

Quando atingimos o número 1, e a parte do número após a vírgula não for nula, separamos está última e reiniciamos o processo:

0,500 x 2

Terceiro algarismo após a virgula 1,000 Encerramos o processo por aqui pois neste caso, a parte do número depois da vírgula é nula

Obs. Se efetua a leitura dos algarismos após a virgula de cima para baixo.

Teremos, então: 0,0112 = 0,37510

Para a conversão tornar-se completa, efetuamos a composição da parte inteira com a fracionária. Logo o número fica:

8,37510 = 1000,0112

Exemplo:Transformar o número 4,810 em binário:

4,8 = 4 + 0,8

4 ∟2 0 2 ∟2 0 1 algarismo mais significativo

Logo: 410 = 1002

0,8 0,6 0,2 0.4x 2 x 2 x 2 x 21.6 1.2 0.4 0,8

Observa-se que o número 0,8 tornou a aparecer, logo se continuarmos o processo teremos a mesma seqüência já vista até aqui. Este é o caso equivalente a uma dízima.

logo: 0,810 = 0,1100 1100 1100 ... 2

Seqüência vista acima Repetição da seqüência

Então o número 4,810 = 100,1100110011001100 ... 2

Converta o número 3,38010 em binário

3,380 = 3 + 0,380

310 = 112 conversão de um número inteiro

0,38 parte fracionária

Page 15: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 150,38 0,76 0,52 0,04 0,08 0,16 0,32 0,64 0,28 x2 x2 x2 x2 x2 x2 x2 x2 x20,76 1,52 1,04 0,08 0,16 0,32 0,64 1,28 0,56

Neste caso temos: 0,3810 = 0,0110000102

Quanto mais casas considerarmos após a vírgula, teremos uma maior precisão, ou seja, aplicamos o método até atingirmos a precisão desejada.

Então: 3,3810 = 11,011000012

O Sistema Octal de numeração

O sistema Octal de numeração é um sistema no qual existe oito algarismos: 0,1,2,3,4,5,6 e 7.

Para representarmos a quantidade oito, agimos do mesmo modo, visto para números binários e decimais.

Decimal Octal0 01 12 23 34 45 56 67 78 109 11

10 1211 1312 1413 1514 1615 1716 2017 21. .. .. .

Page 16: Apostila Geral Arq Comp01

Conversão do Sistema Octal para o Sistema Decimal

Para convertermos um número Octal em decimal, utilizamos os conceitos básicos de formação de um número.

Converter, por exemplo, o número 1448 para o decimal:

1 4 482 81 80

1 x 82 + 4 x 81 + 4 x 80 =1 x 64 + 4 x 8 + 4 x 1 =64 + 32 + 4 = 10010 logo: 1448 = 10010

Converter, por exemplo, o número 778 para o decimal:

7 781 80

7 x 81 + 7 x 80 =7 x 8 + 7 x 1 =56 + 7 = 6310 logo: 778 = 6310

Conversão do Sistema Octal para o Sistema Binário

Tomemos um número octal qualquer, por exemplo, o número 278. A regra consiste em transformar cada algarismo, no correspondente binário:

28 = 0102

78 = 1112

Logo: 278 = 101112 Obs.: Zero à esquerda é algarismo não significativo.

Exemplos: Converter os seguintes números para binário

a) 348

3 4 (8)

011 100 (2)

Logo: 348 = 111002

b) 5368

5 3 6 (8)

101 011 110 (2)

Logo: 5368 = 1010111102

Page 17: Apostila Geral Arq Comp01

Conversão do Sistema Binário para o Sistema Octal

Tomemos um número binário qualquer, por exemplo, o número 1100102. Para transformarmos esse número em octal, separamos o número binário em grupos de três algarismos a partir da direita:

Converter, por exemplo, o número 1100102 para o octal

110 010 (2)

6 2 (8)

obs.: Sempre da direita para a esquerda

Fazemos agora, a conversão de cada grupo de algarismos para sistema decimal. Podemos observar que o maior número que se pode formar com três algarismos binários é o 7. Esta conversão irá resultar diretamente o número no sistema octal:

Logo: 1100102 = 628

Obs.: Caso o último grupo se forme incompleto, adicionamos zeros à esquerda, até completarmos com os três algarismos.

Exemplo: Converter o número 10102 em octal

00 1 010 (2)

1 2 (8)

Logo: 10102 = 128

Conversão do Sistema Decimal para o Sistema Octal

Existem dois métodos para efetuarmos essa conversão. O 1° é análogo à conversão do decimal para o binário, somente que neste caso, usamos como divisor, o número 8 (pois a base agora é 8).

Exemplo:Converter o número 9210 para octal:

92 ∟8 4 11 ∟8 3 1 último quociente = algarismo mais significativo

1 3 4

último quociente 2° resto 1° resto

Logo: 9210 =1348

O 2° método, consiste na conversão do número decimal em binário e logo após, sua conversão do sistema binário em octal. (Aparentemente desta forma é mais trabalhoso, porém este método é de grande praticidade por trabalhar com a base 2)

DECIMAL BINÁRIO OCTAL

Page 18: Apostila Geral Arq Comp01

Exemplo do 2° método: Converter o número 9210 em octal

92 ∟2 0 46 ∟2 0 23 ∟2 1 11 ∟2 1 5 ∟2 1 2 ∟2 0 1 algarismo mais significativo

9210 = 10111002

001 011 100 (2)

1 3 4 (8)

Logo: 9210 = 1348

Exemplos: Converter o número 7410 para octal utilizando os dois métodos

1° método: 74 ∟8 2 9 ∟8

1 1 algarismo mais significativo

Logo: 7410 = 1128

2° método: 74 ∟2 0 37 ∟2

1 18 ∟2 0 9 ∟2 1 4 ∟2

0 2 ∟2 0 1 algarismo mais significativo

7410 = 10010102

001 001 010 (2)

1 1 2 (8)

Logo: 7410 = 1128

O Sistema Hexadecimal de Numeração

O sistema hexadecimal possui dezesseis algarismos, assim enumerados: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.

A letra A representa o algarismo dez. A letra B equivale ao algarismo onze no sistema decimal, e assim sucessivamente até a letra F que equivale ao algarismo quinze no sistema decimal.

Para representarmos a quantidade dezesseis, utiliza-se o conceito da formação de um número, ou seja, coloca-se o algarismo 1 (um) seguido do algarismo 0 (zero). Isso representará um grupo de dezesseis, adicionado a nenhuma unidade. Podemos escrever a seqüência de numeração hexadecimal:

Page 19: Apostila Geral Arq Comp01

Conversão do Sistema Hexadecimal para o Sistema Decimal

Método análogo aos anteriores, tomemos por exemplo, o número hexadecimal 3F16

3 F161 160

3 x 161 + F x 160 =

3 x 161 + 15 x 160 =Como no sistema hexadecimal F16 = 1510 (substituo o F pelo 15)

3 x 16 + 15 x 1 = 6310 logo: 3F16 = 6310

Exemplo: Converter os seguintes números para o decimal:

a) 1C316

1 C 3162 161 160

Decimal Binário Hexadecimal Decimal Binário Hexadecimal0 0 0 19 10011 131 1 1 20 10100 142 10 2 21 10101 153 11 3 22 10110 164 100 4 23 10111 175 101 5 24 11000 186 110 6 25 11001 197 111 7 26 11010 1A8 1000 8 27 11011 1B9 1001 9 28 11100 1C

10 1010 A 29 11102 1D11 1011 B 30 11110 1E12 1100 C 31 11111 1F13 1101 D 32 100000 2014 1110 E 33 100001 2115 1111 F 34 100010 2216 10000 10 . . .17 10001 11 . . .18 10010 12 . . .

Page 20: Apostila Geral Arq Comp01

1 x 162 + C x 161 + 3 x 160 =1 x 256 + 12 x 16 + 3 x 1 =

256 + 192 + 3 = 45110 logo: 1C316 = 45110

b) 23816

2 3 8162 161 160

2 x 162 + 3 x 161 + 8 x 160 =

2 x 256 + 3 x 16 + 8 x 1 =

512 + 48 + 8 = 56810 logo: 23816 = 56810

c) 1FC916

1 F C 9163 162 161 160

1 x 163 + F x 162 + C x 161 + 9 x 160 =1 x 163 + 15 x 162 + 12 x 161 + 9 x 160 =1 x 4096 + 15 x 256 + 12 x 16 + 9 x 1 =4096 + 3840 + 192 + 9 = 813710 logo: 1FC916 = 813710

Conversão do Sistema Hexadecimal para o Sistema Binário

Análogo à conversão do sistema octal para o sistema binário. Neste caso, necessitamos de quatro algarismos binários para representar um algarismo hexadecimal. Utilizamos a tabela abaixo.

Hexadecimal Binário0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001A 1010B 1011C 1100D 1101E 1110F 1111

Page 21: Apostila Geral Arq Comp01

Exemplo, o número hexadecimal C1316

C16 = 11002

116 = 00012

316 = 00112

Logo: C1316 = 1100000100112 Obs.: Se houver zero à esquerda é um algarismo não significativo.

Exemplo: Converter os seguintes números para binário:

a) 1ED16

1 E D (16)

0001 1110 1101 (2) Logo: 1ED16 = 1111011012

b) ABF16

A B F (16)

1010 1011 1111 (2) Logo: ABF16 = 1010101111112

Conversão do Sistema Binário para o Sistema Hexadecimal

Análogo à conversão do sistema binário para o octal, somente que neste caso, agrupamos de quatro em quatro algarismos da direita para a esquerda. Utilizamos também a tabela acima.

Exemplo, o número binário 100110002

1001 1000 (2)

9 8 (16)

obs.: Sempre da direita para a esquerda

Page 22: Apostila Geral Arq Comp01

Logo: 100110002 = 9816

Obs.: Caso o último grupo se forme incompleto, adicionamos zeros à esquerda, até completarmos com os quatro algarismos.

Exemplo: Converter os seguintes números para hexadecimal:

a) 11000112

0110 0011 (2)

6 3 (16) Logo: 11000112 = 6316

b) 110001111000111002

0001 1000 1111 0001 1100 (2)

1 8 F 1 C (16) logo: 110001111000111002 = 18F1C16

Conversão do Sistema Decimal para o Sistema Hexadecimal

Existem dois métodos para efetuarmos essa conversão. O 1° é análogo à conversão do decimal ou octal para o binário, somente que neste caso, usamos como divisor, o número 16 (pois a base agora é 16).

Exemplo: Converter o número 100010 para hexadecimal

1000 ∟16 8 62 ∟16 14 3 último quociente = algarismo mais significativo

Como no sistema hexadecimal 1410 = E16 (substituo o 14 pelo E)

3 14 8

último quociente 2° resto 1° resto

Logo: 100010 = 3E816

O 2° método, consiste na conversão do número decimal em binário e logo após sua conversão do sistema binário para hexadecimal. (Aparentemente desta forma é mais trabalhoso, porém este método é de grande praticidade por trabalhar com a base 2)

DECIMAL BINÁRIO HEXADECIMAL

Page 23: Apostila Geral Arq Comp01

Exemplo do 2° método: Converter o número 100010 em hexadecimal

1000 ∟2 0 500 ∟2 0 250 ∟2 0 125 ∟2 1 62 ∟2 0 31 ∟2 1 15 ∟2

1 7 ∟2 1 3 ∟2

1 1 algarismo mais significativo

100010 = 11111010002

0011 1110 1000 (2)

3 E 8 (8) Logo: 100010 = 3E816

Exemplo: Converter o número 38410 para octal utilizando os dois métodos

1° método: 384 ∟16 0 24 ∟16 8 1 algarismo mais significativo

Logo: 38410 = 18016

2° método: 384 ∟2 0 192 ∟2 0 96 ∟2

0 48 ∟2 0 24 ∟2

0 12 ∟2 0 6 ∟2

0 3 ∟21 1 algarismo mais significativo

38410 = 1100000002

0001 1000 0000 (2)

1 8 0 (8)

Logo: 7410 = 1128

Page 24: Apostila Geral Arq Comp01

Exercícios:

1) Converta os seguintes números binários em decimais:a) 10011002 b) 11112 c) 100002 d) 111112 e) 100012

f) 10101102 g) 001110012 h) 111100012 i) 011000112 j) 000000012

l) 1111,1112 m) 1000,00012 n) 11,112 o) 1011,112 p) 100,0011012

q) 100,110012 r) 1010,10102

2) Converta os seguintes números decimais em binários:a) 7810 b) 10210 c) 21510 d) 80810 e) 54210 f) 63010 g) 3310

h) 15,12510 i) 0,062510 j) 0,710 l) 0,9210 m) 7,910 n) 47,4710

3) Converta os seguintes números octais para decimais:a) 148 b) 678 c) 1538 d) 15448 e) 1008 f) 4768 g) 11008

4) Converta os seguintes números octais em binários:a) 4778 b) 15238 c) 47648 d)100008 e) 43218

5) Converta os seguintes números decimais em octais:a) 10710 b) 18510 c) 204810 d) 409710 e) 71910

6) Converta os seguintes números binários em octais:a)101112 b)110101012 c)10001100112 d)10112 e)100111002 f) 1101011102

7) Converta os seguintes números hexadecimais em decimais:a) 47916 b) 4AB16 c) BED16 d) FOCA16 e) 2D3F16

8) Converta os seguintes números hexadecimais em binários:a) 8416 b) 7F16 3) 3B8C16 c) 47FD16 d) F1CD16 e) 6CF916

9) Converta os seguintes números binários em hexadecimais:a) 10112 b) 11100111002 c) 1001100100112 d) 11111011112 e)10110111101012

10) Converta os seguintes números decimais em hexadecimais:a) 48610 b) 200010 c) 409610 d) 555510 e) 3547910 f) 38410 g) 252010

Page 25: Apostila Geral Arq Comp01

Operações aritméticas no Sistema Binário

Adição

Para efetuarmos a adição no sistema binário, devemos proceder como numa adição convencional no sistema decimal, sendo que no sistema binário temos somente dois algarismos, zeros e uns

0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 10 (0 “e vai 1”)

Aqui cabe observar que no sistema decimal 1 + 1 = 2, no sistema binário representamos o número 210 por102, vem daí:

1 + 1 = 10Já temos aí então, uma primeira regra de transporte: 1 + 1 = 0 com o transporte de um para a próxima coluna, ou seja, “vai um”.

Exemplo: 112 + 102 =1

1 1 + 1 0 “vai 1” 1 0 1

Logo: 112 + 102 = 1012

b) 1102 + 1112 = 1 1 “vai 1” 1 1 0

+ 1 1 1 “vai 1”

1 1 0 1Logo: 1102 + 1112 = 11012

c) 110012 + 10112 =1 1 1 1

1 1 0 0 1 + 1 0 1 1

1 0 0 1 0 0 “vai 1” “vai 1”

“vai 1” “vai 1”

Logo: 110012 + 10112 = 1001002

Page 26: Apostila Geral Arq Comp01

Subtração

O método de resolução é análogo a uma subtração no sistema decimal.

0 – 0 = 00 – 1 = 11 (“1 e empresta 1”) obs. O empréstimo pode ser feito tanto para o meio de operação quanto1 – 0 = 1 para baixo da operação. NUNCA para cima , pois ai seria “vai 1”.1 – 1 = 0

Exemplos:

a) 1112 – 1002 = 1 1 1 - 1 0 0

Logo: 1112 – 1002 = 112 0 1 1

b) 10002 – 1112 =

Logo: 10002 – 1112 = 12

Page 27: Apostila Geral Arq Comp01

Multiplicação

Faz-se como uma multiplicação normal como no sistema decimal.

0 x 0 = 00 x 1 = 01 x 0 = 01 x 1 = 1

Exemplos:

a) 110102 x 102 = 1 1 0 1 0 x 1 0

0 0 0 0 0 + 1 1 0 1 0 1 1 0 1 0 0

Logo: 110102 x 102 = 1101002

b) 110102 x 1012 = 1 1 0 1 0 x 1 0 1

“vai um” 1 1 1 1 1 1 0 1 0

0 0 0 0 0 + 1 1 0 1 0 1 0 0 0 0 0 1 0

Logo: 110102 x 1012 = 100000102

Divisão

A divisão de binários é análoga à uma divisão de decimais, trabalhando com multiplicação e subtração.

Exemplos:

a) 1100 / 10 = 1 1 0 0 ∟10 - 1 0 110 0 1 0

- 1 00 0

b) 10101 / 111 = 1 0 1 0 1 ∟111- 1 1 1 110 0 1 1 1 - 1 1 1 0 0 0

Page 28: Apostila Geral Arq Comp01

Aritmética no Sistema Hexadecimal

Adição:

Efetua-se a adição seguindo as mesmas regras do sistema decimal, lembrando-se sempre que no sistema hexadecimal temos números de 0 a F.

Exemplos:

a) C53 + 13A = C 5 3 + 1 3 A

D 8 D

1

B) 4CE + 215 = 4 C E + 2 1 5

6 E 3

“vai1” * pois E + 5 = 13 (vide tabela)

1 1

c) 1E84 + DAAA = 1 E 8 4

+ D A A A

F 9 2 E

(8 + A = 12, ou seja, 2 e vai 1)

(1 + E + A = 19, ou seja, 9 e vai 1)

Subtração:

Efetua-se a subtração seguindo as mesmas regras do sistema decimal, lembrando-se sempre que no sistema hexadecimal temos números de 0 a F.

Exemplos:4

a) C53 – 13E = C 5 13 - 1 3 E

B 1 5

* De 3 não posso tirar E então peço emprestado ao lado, o 5 passa a valer 4 e o 3 passa a valer 13. Agora

13 – E = 5.

Page 29: Apostila Geral Arq Comp01

b) 15B0 – 13AC = A

1 5 B 10 - 1 3 A C

0 2 0 4

• De “0” não posso tirar “C” então peço emprestado ao do lado, agora 10 – C = 4.• O “B” agora vale “A” então A – A = 0.

Exercícios:

1) Efetue a adição dos números abaixo:a) 10002 + 10012 b) 100012 + 111102 c) 10101102 + 10010112 d) 110001112 + 100101102

e) 45A16 + 19216 f) 2C9116 + 999516 g) ADF16 + 52516 h) 12BB16 + C4C316

2) Efetue a subtração dos números abaixo:a) 110012 - 110002 b) 1110012 - 1011012 c)110011002 - 101100112 d) 100110002 - 100011112

3) Efetue a multiplicação dos números abaixo:a) 110012 x 1012 b)101002 x 11002 c)1110012 x 10102 d)110001102 x 1012

4) Efetue a divisão dos números abaixo:a) 110012 / 1112 b) 101012 / 112 c) 11002 / 102 d) 11102 / 1112

5) Calcule os números abaixo:a) 45CD + 123A b) ACDE + 3527 c) 8395 – 2E9A d) 1000 – 38A

Page 30: Apostila Geral Arq Comp01

Representação de dados

Os computadores executam instruções que realizam operações sobre valores (numéricos, alfanuméricos ou lógicos). Esses valores são conhecidos como dados. Os valores de dados normalmente são introduzidos no computador através de digitação, e são imediatamente transformados em algum código padrão, que depende do computador que está recebendo o dado e alguns caracteres podem ser armazenados nesse código padrão (dados alfanuméricos), enquanto outros podem ser armazenados em formato mais adequado para a realização de operações sobre eles (dados numéricos ou lógicos).

Tipo de dado

De um modo geral, as seguintes formas de dados são utilizadas nos programas atuais (formas primitivas)

• Tipo caractere• Tipo lógico• Tipo numérico

Tipos primitivos de dados:

Existem ainda formas mais complexas permitidas em certas linguagens modernas, mas durante a compilação estes dados são convertidos para as formas primitivas.

Tipo caractere

Os computadores só trabalham com dígitos binários, valendo 0 ou 1. Para representar os símbolos (ou caracteres) que reconhecemos a partir de 0s e 1s, deve ser utilizada uma técnica chamada de codificação, onde cada símbolo de nossa linguagem é associado biunivocamente a um grupo de bits. A codificação é a

Page 31: Apostila Geral Arq Comp01

forma de representar os caracteres armazenados no computador.O tamanho desse grupo de bits é definido a partir do número de diferentes símbolos que queremos representar, uma vez que já sabemos que n bits podem representar até 2n símbolos diferentes.

Desde o advento da computação foram criados vários sistemas de codificação, dentre os quais podemos destacar:

a) BCD - Binary Coded Decimal (Decimal codificado em binário) - grupos de 6 bits, representando 64caracteres (obsoleto).

b) EBCDIC - Extended Binary Coded Decimal Interchange Code (Código para intercâmbio BCD estendido) - Usado em mainframes IBM. Grupos de 8 bits, permitindo 256 caracteres diferentes, mas na prática muitos códigos não são associados a nenhum caractere legível.

c) ASCII - American Standard Code for Information Interchange (Código padrão americano para troca de informações) - Criado com grupos de 7 bits, e mais um para paridade, foi estendido para 8 bits, devido à necessidade de aumentar o conjunto de 128 caracteres para 256, devido à introdução de símbolos gráficos, e letras acentuadas.

d) Unicode - Grupos de 16 bits, criado para suportar todos os símbolos da humanidade, como caracteres japoneses, chineses, árabes, hebraicos, etc. Comporta até 64K símbolos diferentes (mais de 65.000). Para manter compatibilidade com a tabela ASCII atual, todos os símbolos ASCII permanecem como estão, sendo adicionados 8 bits zero após os atuais 8 bits.

Tabelas ASCII e EBCDIC são encontradas em diversas publicações e programas de computador, e não são facilmente decoráveis em seu todo, mas é útil conhecer as representações de alguns símbolos nesses códigos. Os valores dos símbolos normalmente são mostrados nas tabelas em hexadecimal.

Caractere ASCII EBCDICEspaço 20 40Dígitos 0 a 9 30 a 39 F0 a F9Letras A - Z (a - z) 41 a 5A (61 a 7A)Letras A - I (a - i) C1 a C9 (81 a 89)Letras J - R (j - r) D1 a D9 (91 a 99)Letras S - Z (s - z) E2 a E9 (A2 a A9)

Notas:No código ASCII as letras minúsculas são obtidas adicionando-se 20 as maiúsculas, enquanto no EBCDICas letras minúsculas são obtidas subtraindo-se 40 das maiúsculas.Em ASCII as letras são contíguas, permitindo que ao se programar, possa-se fazer letra2 = letra1 + 1, para obter a letra seguinte a uma outra, enquanto que isso não é permitido em EBCDIC.

Exemplo: "J" = "I" + 1 em ASCII e "J" = "I" + 8 em EBCDIC.

Com esse conjunto de caracteres pode-se representar qualquer informação, e até processá-las. Entretanto, existem outras formas de se armazenar valores matemáticos no computador, que se por um lado não são fáceis de serem interpretados pelas pessoas, são muito mais eficientes de serem processados pelos computadores. Chamamos a essas representações de representações internas. Elas também dependem da arquitetura do computador.Quando o usuário, utilizando uma linguagem de programação, introduz um programa no computador, os

Page 32: Apostila Geral Arq Comp01

componentes de sua estrutura física convertem os caracteres introduzidos como um texto livre, para o código de bits usados pela máquina, em seguida traduz para o código-objeto e passa os elementos do programa para uma representação passível de ser interpretada e manipulada pelo hardware (CPU)

Tipo lógico

Esse tipo de dados permite armazenar apenas 2 informações distintas:

• Verdadeiro (True): bit um• Falso (False): bit zero

Como já vimos anteriormente, estas variáveis são utilizadas de diversas formas em um programa, podendo ser realizado um tipo específico de operação, empregandooperações lógicas.

Apesar de ser necessário apenas 1 bit para armazenar 1 valor entre 2 possíveis, as implementações nas linguagens de programação utilizam 1 ou mais bytes para armazenar um valor lógico (ou booleano).

Assim, em Pascal pode-se declarar ByteBool (lógico com 1 byte) ou WordBool (lógico com 1 palavra Æ 2ou 4 bytes, dependendo do tamanho da palavra).Em Visual Basic, a declaração Boolean cria variáveis lógicas com 2 bytes de tamanho.

Em COBOL não existe este tipo de dado, apesar de existirem expressões lógicas, como A > B e os operadores lógicos NOT, AND e OR.

Os operadores lógicos mais comuns em linguagens de programação são:

a) NOT. Operador unário. Inverte o valor lógico da variável ou expressão, devolvendo True se a variável for False, e False se a variável for True. Exemplos: NOT A; NOT (VALOR > 10)

b) AND. Operador binário. A AND B devolve True se A e B forem True, e devolve False em caso contrário.

c) OR. Operador Binário. A OR B devolve True se pelo menos 1 dos operandos for True, e devolve False se ambos forem Falsed) XOR (OU EXCLUSIVO). A XOR B devolve True se exatamente 1 dos operandos for TRUE, e False se ambos forem False ou True.

Tipo numérico

A ULA foi projetada para, rapidamente, executar operações com valores recebidos em forma binária. Um dos primeiros problemas ocorridos quando da representação de números nos computadores foi na indicação do sinal do número (+ ou -) Isso foi resolvido com o acréscimo de mais um bit na representação donúmero, esse bit adicional representa o sinal do número e é denominado sinal e magnitude.

A convenção adotada de forma universal é:

Page 33: Apostila Geral Arq Comp01

Prof. Fábio Lucena Veloso 25

• Valor positivo - bit de sinal igual a 0• Valor negativo - bit de sinal igual a 1

Outro problema é a forma de representação dos números fracionários, devido à dificuldade de se representar à vírgula internamente entre a posição dos dois bits.Existem dois modos de representação:

• Ponto fixo (vírgula fixa) – consiste em adotar uma posição fixa para a vírgula• Ponto flutuante (vírgula flutuante) – utiliza a representação conhecida como notação científica

Representação em ponto fixo

Os valores fracionários também representam um problema a ser resolvido. A solução mais simples é guardar o número como se fosse inteiro, e lembrar que certo número de dígitos são fracionários para posterior apresentação ou operação.

Posições mais adotadas:• Na extremidade esquerda – nesse caso o número seria totalmente fracionário;• Na extremidade direita – nesse caso o número seria inteiro

Em nenhum dos casos a vírgula estará representada fisicamente na memória, isto é feito via programa por ocasião da definição da variável, realizada pelo programador. O sistema memoriza essa posição, mas não a representa fisicamente.

Esse modo é chamado de representação em ponto fixo.

Na linguagem C, os tipos definidos são: CHAR (1 byte), INT (2 bytes) e LONG INT (4 bytes).

Em Visual Basic, temos os tipos BYTE, INTEGER (2 bytes) e LONG (4 bytes). Nesta linguagem existe ainda um tipo chamado DECIMAL com 14 bytes, contendo um valor inteiro e um fator de escala, indicando o número de casas decimais e podendo valer, se não tiver parte fracionária, +/-79.228.162.514.264.337.593.543.950.335, e com partes decimais, esse mesmo valor, mas com a vírgula decimal em qualquer posição a partir do dígito 7 inicial. O menor número em valor absoluto é 10-28. Temos também em VB o tipo CURRENCY (monetário) com 8 bytes de comprimento, com 4 casas decimais, permitindo uma precisão de -922.337.203.685.477,5808 até 922.337.203.685.477,5807.

Na representação de números em ponto fixo, os valores positivos são representados pelo bit 0 de sinal. Sendo posicionado como algarismo mais representativo (à esquerda) este grupo de bits representará o valor absoluto do número (magnitude)

Quanto aos números negativos o sinal é representado pelo bit 1 e a magnitude pode ser representada por um dos três modos:

a)Sinal e magnitude

b) Complemento

c) Complemento a base menos 1

Page 34: Apostila Geral Arq Comp01

Sinal e Magnitude

A representação de números com n algarismos binários (n bits) em sinal e magnitude é obtida atribuindo-se1 bit (em geral, na posição mais à esquerda) para indicar o valor do sinal, e os n-1 bits restantes para indicarem a magnitude do número. Neste tipo de representação, o valor dos bits usados para representar a magnitude (valor absoluto do número) é o mesmo, seja para números positivos ou números negativos, o que varia é o valor do bit de sinal. Esta é uma forma idêntica de representar a que usamos na vida real, com a diferença de que usamos símbolos gráficos no lugar do bit de sinal do computador.

Exemplos de uma representação de dados em sinal e magnitude.

Representação de valores em sinal e magnitude

Características da representação em Sinal e magnitude• Possui duas representações para o ZERO (matematicamente incorreto) o que é uma desvantagem

em relação a outros métodos de representação• Representação dos números é simétrica entre os números positivos e negativos, limitada à

quantidade permitida de bits dos registradores internos• Se os números forem fracionários, a faixa de representação é mais reduzida. Restringe-se a

quantidade de algarismos da parte inteira.

Considerações sobre representação em Sinal e Magnitude

As operações com números negativos realizadas com sinal e magnitude são demoradas e difíceis porque é necessário efetuar várias comparações e decisões em vista da manipulação dos sinais das parcelas para determinar o sinal do resultado. As mesmas operações se tornam mais simples e rápidas quando realizadas através da aritmética de complemento

O problema encontrado pelos fabricantes de computadores na implementação da ULA para que efetuasse operações aritméticas com valores representados em sinal e magnitude residiu, principalmente, em dois fatores:

a) Custo – devido à necessidade de construção de dois elementos diferentes, um para efetuar somas e outro

Page 35: Apostila Geral Arq Comp01

para efetuar subtrações

b) Velocidade – ocasionada pela perda de tempo gasto na manipulação dos sinais, de modo a determinar o tipo de operação e o sinal do resultado

Outro fator é a inconveniência da dupla representação do ZERO, o que resulta em um circuito lógico específico para evitar erros de interpretação.

No sinal e magnitude, a única diferença entre um valor positivo o mesmo valor negativo é o bit de sinal, enquanto que na forma de complemento a 2, os dois valores são tais que se os somarmos obteremos 0 com um overflow de 1 bit (vai um).

Overflow: Diz-se que há overflow quando a soma de dois números de n algarismos der como resultado um número com n+1 algarismos. Este fato é válido, sejam números binários ou decimais, com ou sem sinal.

Nenhum sistema moderno emprega aritmética em sinal e magnitude, a qual foi substituída por aritmética em complemento a 2 (complemento a base)

Algoritmo para a soma em Sinal e Magnitude

1) Se ambos os números tem o mesmo sinal, somam-se as magnitudes, o sinal de resultado é o mesmo das parcelas;

2) Se o número tem sinais diferentes:a) Identifica-se a maior das magnitudes e registra-se o seu sinal;b) Subtrai-se a magnitude menor da maior (apenas as magnitudes);c) Sinal do resultado é igual ao sinal da maior magnitude

Exemplo:

Somar os números: (+13) e (+12)

+13 0 0 1 1 0 1 Mesmo sinal (bit 0). Somam-se as +12 0 0 1 1 0 0 magnitudes e coloca-se o bit 0 no resultado+25 0 1 1 0 0 1

Somar os números: (-17) e (-9)

- 17 1 1 0 0 0 1 Mesmo sinal (bit 1). Operação idêntica à - 9 1 0 1 0 0 1 do exemplo anterior-26 1 1 1 0 1 0

Somar os números: (+18) e (-11)

+18 0 1 0 0 1 0 Sinais diferentes. Maior número (+18), - 11 1 0 1 0 1 1 bit de sinal 0. Subtração das magnitudes;+ 7 0 0 0 1 1 1 bit de sinal 0 no resultado

Page 36: Apostila Geral Arq Comp01

Somar os números: (-21) e (+10)

- 21 1 1 0 1 0 1 Sinais diferentes; maior magnitude (21), +10 0 0 1 0 1 0 sinal (–) (bit 1). Subtrai-se o menor do- 11 1 0 1 0 1 1 maior; bit 1 (sinal (-) para o resultado

Algoritmo para a subtração em Sinal e Magnitude

1) Troca-se o sinal do subtraendo

2) Procede-se como no algoritmo da soma

Exemplo:

Efetuar a subtração: (-18) - (+12)

(-18) - (+12) = (-18) + (-12) = - 30

- 18 1 1 0 0 1 0 Foi trocado o sinal de (+12) para (-12) e a - 12 1 0 1 1 0 0 operação passou a ser de soma; como- 30 1 1 1 1 1 0 números tem mesmo sinal (-) resultado = (-)

Efetuar a subtração: (-27) - (-14)

(-27) - (-14) = (-27) + (+14) = -13

- 27 1 1 1 0 1 1 Foi trocado o sinal de (-14) para (+14) e a +14 0 0 1 1 1 0 operação passou a ser de soma; como- 13 1 0 1 1 0 1 números tem sinais deferentes subtrai-se o

menor do maior; resultado é igual ao do maior = (-)

Representação de números negativos em complemento

O conceito de complemento é válido para qualquer base de numeração. Há dois tipos de complemento:

• Complemento a base• Complemento a base menos 1

Page 37: Apostila Geral Arq Comp01

Complemento a base:

O termo complemento, em matemática, significa a quantidade que falta para completar um valor, torná-lo completo

Em operações aritméticas, o complemento a base de um número N é o valor necessário para se obter Bn, ou seja:

Complemento a base de N = Bn – N,

Onde: n = quantidade de algarismos utilizados na operaçãoN = valor do número

Na base 10: N = 76310 C10 de N = 105 – N = 10000010 – 76310 = 9923710

Na base 8: N = 2548 C8 de N = 85 – N = 1000008 – 2548 = 775248

Na base 2: N = 1102 C2 de N = 25 – N = 1000002 – 1102 = 110102

(Consider a ndo-se números com cinco algari s mos)

Na prática:

• 1ª etapa: Subtrair cada algarismo do maior algarismo da base considerada• 2ª etapa: Ao resultado encontrado somar 1 ao algarismo menos significativo (mais à direita)

Refazendo os exemplos acima:

N = 76310 C10 de N = 99999 – 763 = 9923610 + 1 = 9923710

N = 2548 C8 de N = 77777 – 254 = 775238 + 1 = 772548

N = 1102 C2 de N = 11111 –110 = 110012 + 1 = 110102

Complemento a base menos 1

A definição matemática do complemento a base menos um (Cb-1) de um número N é:

Cb-1(N) = 2n – N – 1

Onde: n = quantidade de algarismos do número2n – N = Cb – 1Cb = complemento a base

Pode-se afirmar que se trata da representação em complemento a base subtraída de 1, daí o nome complemento a base menos 1.

Na prática:

Obtém-se o complemento a base menos 1 de um número (CB-1), subtraindo-se do valor (B-1) cada algarismo do número, B-1 é o maior algarismo de uma base.

Se a base for 2, pode-se obter a representação em complemento a base menos 1 através da troca do valor

Page 38: Apostila Geral Arq Comp01

dos bits do número, ou seja, alterar o valor de cada bit 1 para 0 e vice-versa.

Complemento a base 2

A primeira etapa desse método consiste na operação de obtenção do complemento a base -1.

Quando se tratar de valores na base 2 pode-se executar a primeira etapa de obtenção do complemento a 2 de um número, ao invés de substituir cada algarismo do número do maior algarismo da base (no caso 1), simplesmente deve se inverter o valor do algarismo, isto é, se for 0 passar para 1 e vice-versa.A segunda etapa permanece a mesma (somar 1 ao resultado)

Exemplos:

Quase a totalidade dos computadores modernos utiliza a aritmética de complemento a 2 (quando se trata de ponto fixo) devido a duas grandes vantagens em relação a sinal e magnitude:

1) Possui uma única representação para o ZERO;

2) Necessita de apenas um circuito para realizar as operações de soma e subtração (mais barato)

Uma única representação para o ZERO acarreta uma assimetria. Há um número negativo a mais do que números positivos.

Exemplo:

Um computador com um registrador com capacidade para armazenar 6 bits para o registrador representará o zero da seguinte forma:

000000 Æ o 1º zero indica o sinal do número

Para calcular o complemento a 2 desse numero usando o método rápido:

000000 Æ 111111 + 1 = 00000

O vai um para a 7ª ordem é desprezado, porque consideramos o limite de 6 bits para o registrador. O valor final é igual ao inicial, portanto uma única representação para o ZERO!

Aritmética em complemento a 2

A aritmética em complemento a 2 requer apenas um circuito para somar dois números e um circuito que realize a operação de complementação. O algoritmo básico refere-se, então, à soma dos números,

Page 39: Apostila Geral Arq Comp01

considerando-se que os negativos estejam representados em complemento a 2; ele acusa também, se o resultado ultrapassar a quantidade de bits representáveis pela ULA (e registradores), que denominamos overflow.

Algoritmo para soma em complemento a 2:

1) somar os dois números, bit a bit, inclusive o bit de sinal

2) desprezar o último “vai 1” (para fora do número), se houver

3) se, simultaneamente, ocorrer “vai 1” para o bit de sinal e para fora do número, ou se ambos não existirem, o resultado está correto.

4) Se ocorrer apenas um dos dois “vai 1” (ou para o bit de sinal ou para fora do número), o resultado está incorreto. Ocorreu overflow.

Exemplos: (com registradores de 5 bits)

1) Dois números positivos: N1 + N2

+ 9 + (+ 4) = + 13

+ 9 0 1 0 0 1 (1ª parcela)+ (+ 4) 0 0 1 0 0 (2ª parcela)

+ 13 0 1 1 0 1bit de sinal (+)

note que os bits de sinal da 1ª parcela e da 2ª parcela são ambos 0 e que o bit de sinal da soma é 0, indicando que a soma é positiva.

2) Número positivo e número negativo menor: N1 + C2 de N2

+ 9 + (-4) (lembre-se que -4 estará em sua forma de complemento 2 = 11100)

+ 9 0 1 0 0 1+ (-4) 1 1 1 0 0

+ 5 1 0 0 1 0 1bit de sinal (+)

este “vai 1” é desprezado

neste caso, o bit de sinal da 2ª parcela é 1. Note que os bits de sinal também participam do processo de adição. De fato, um “vai 1” é gerado na última posição da adição. Este “vai 1” é desprezado, de modo que o resultado final da soma é 00101 que é equivalente a + 5.

Page 40: Apostila Geral Arq Comp01

3) Número positivo e número negativo maior: C2 de N1 + N2

-9 + (+ 4) (lembre-se que -9 estará em sua forma de complemento 2 = 10111)

-9 1 0 1 1 1+ (+ 4) 0 0 1 0 0

-5 1 1 0 1 1 complemento 2 de 1011 = 0101 = 5

bit de sinal (-)

A soma aqui tem um bit de sinal igual a 1, indicando um número negativo. Como a soma é negativa, ela está na forma de complemento a 2, de modo que os quatro últimos bits (1011) representam o complemento a 2 de 0101 (equivalente ao decimal 5). Desta forma, 11011 é o equivalente a -5, o resultado correto.

4) Dois números negativos: C2 de N1 + C2 de N2

-9 + (-4) (lembre-se que -9 estará em sua forma de complemento a 2 = 10111 e que -4 estará em sua forma de complemento a 2 = 11100)

-9 1 0 1 1 1-4 1 1 1 0 0

-13 1 1 0 0 1 1 complemento 2 de 0011 = 1101 = 13

bit de sinal (-)este “vai 1” é desprezado

Exemplos: (com registradores de 6 bits)

5) N1 + N2:

+ 12 + 7

+ 12 0 0 1 1 0 0+ 7 0 0 0 1 1 1

+ 19 0 1 0 0 1 1bit de sinal (+)

6) N1 + C2 de N2

+ 12 + (-7)

+ 12 0 0 1 1 0 0- 7 1 1 1 0 0 1

+ 5 1 0 0 0 1 0 1 bit de sinal (+) este “vai 1” é desprezado

Page 41: Apostila Geral Arq Comp01

7) C2 de N1 + N2

-12 + 7

-12 1 1 0 1 0 0+ 7 0 0 0 1 1 1

- 5 1 1 1 0 1 1 complemento 2 de 11011 = 00101 = 5bit de sinal (-)

8) C2 de N1 + C2 de N2

-12 + (-7)

-12 1 1 0 1 0 0+ (-7) 1 1 1 0 0 1

-19 1 1 0 1 1 0 1 complemento 2 de 01101 = 010011 = 19

bit de sinal (-)

este “vai 1” é desprezado

Subtração no sistema de complemento de 2:

A operação de subtração usando o sistema de complemento de 2, na verdade, envolve a operação de adição e não é, realmente, diferente dos casos vistos anteriormente. Ao se subtrair um número binário (o subtraendo) de outro número binário (o minuendo), o procedimento é o seguinte:

1) Tome o complemento 2 do subtraendo, incluindo o bit de sinal. Se o subtraendo for um número positivo, isto irá torná-lo um número negativo na forma de complemento 2. Se o subtraendo for um númeronegativo, isto irá torná-lo um número positivo na forma binária verdadeira. Em outras palavras, nós estamos mudando o sinal.

2) Depois de tomar o complemento 2 do subtraendo, ele é somado ao minuendo. O minuendo é mantido em sua forma original. O resultado dessa adição representa a diferença perdida. O bit de sinal dessa diferença determina se é + ou – e se está na forma binária verdadeira ou na forma de complemento 2.

Exemplos: (com registradores de 5 bits)

1) Vamos considerar o caso: + 4 deve ser subtraído de + 9

Minuendo = + 9Subtraendo = + 4 complemento 2 = 11100

+ 9 0 1 0 0 1- (+ 4) 1 1 1 0 0 complemento 2 = 11100

+ 5 1 0 0 1 0 1

“vai 1” desprezado

Page 42: Apostila Geral Arq Comp01

2) + 9 – (- 4)

+ 9 0 1 0 0 1- (- 4) 0 0 1 0 0 complemento 2 de - 4 = 11100 ;

complemento 2 de 11100 = 00100+ 13 0 1 1 0 1

3) - 9 - (+ 4)

- 9 1 0 1 1 1- (+ 4) 1 1 1 0 0 complemento 2 = 11100

- 13 1 1 0 0 1 1 complemento 2 de 0011 = 1101 = 13

bit de sinal (-) “vai 1” desprezado4) - 9 - (- 4)

- 9 1 0 1 1 1- (- 4) 0 0 1 0 0 complemento 2 de - 4 = 11100 ;

complemento 2 de 11100 = 00100 - 5 1 1 0 1 1 complemento 2 de 1011 = 0101 = 5

bit de sinal (-)

Obs. Lembrar sempre:

a) As operações de soma são normalmente realizadas como soma

b) As operações de subtração são realizadas como soma de complemento

c) Se o resultado encontrado é um valor positivo, então o valor decimal correspondente da magnitude é obtido por pura conversão de base 2 para 10

d) Se o resultado encontrado é um valor negativo, deve-se primeiro converter esse valor para representação de sinal e magnitude e, em seguida, converter a magnitude para complemento a 2 e depois converter o resultado da base 2 para 10. Finalizando põem-se o sinal negativo no resultado.

Representação em ponto flutuante.

Em aplicações científicas ocorrem números muito grandes (como na astronomia) ou muito pequenos (como na física atômica). Nesses casos, sempre se estará interessado na ordem de grandeza do valor, e um certo número de dígitos de precisão. Nas máquinas de calcular científicas vemos a representação de números em notação científica, onde 10234 é mostrado como 1.0234E05, significando 1.0234 * 105. Em computação, chamamos a notação científica de representação em ponto flutuante.

Um número em notação científica é representado por um produto de dois fatores:

Page 43: Apostila Geral Arq Comp01

N = ± FxB ± E

Onde:• N = número que se deseja representar• ± = sinal do número• F = dígitos significativos do número (também chamada parte fracionária ou mantissa)• B = base de exponenciação• ± E = valor do expoente, com seu sinal (expoente pode ser positivo ou negativo)

Exemplo: -2,3456 x 10-23

A representação interna dos números de ponto flutuante varia de fabricante para fabricante, pois além de se poder representar a mantissa de números negativos na forma sinal e magnitude ou complemento a dois, o expoente também pode ter essa representação, ou, como é o caso dos mainframes IBM, ter a representação de excesso a N. No caso do IBM, um expoente 64 significa 0, enquanto o 63 significa -1 e o 67 significa 3(excesso a 64). Também a base da exponenciação pode ser 2, 10 ou 16 (No IBM a base é 16).

O importante é saber de alguns problemas que influenciam na programação com números de ponto flutuante.

O resultado de operações aritméticas deve ser sempre considerado como aproximado. Com isso, nunca se deve perguntar se uma variável é igual a outra, ou igual a uma constante. Em vez disso, deve ser perguntado se a diferença entre os valores é muito pequena. Por exemplo, para saber se um número é zero, usa-se: IF ABS(NUMERO) < 0.0000001. Para saber se um número é igual a outro pergunta-se: IF ABS(NUMERO-OUTRO)<0.0001.

Apesar de um número poder ser muito grande ou muito pequeno, não se deve somar números de grandeza muito diferentes, pois o menor número não causará diferença na soma, devido à pequena precisão dos dados. Exemplo: 1000000000000 + 0,000000001 = 1000000000000, uma vez que o número de dígitos significativos é maior que a precisão da variável que contém o número.

Em COBOL, os números de ponto flutuante são declarados como COMP-1 (precisão simples- 4 bytes) e COMP2 (precisão dupla- 8 bytes). Na linguagem C e no Visual Basic os tipos podem ser: SINGLE (4 bytes -3.402823E38 até -1.401298E-45 para números negativos; 1.401298E-45 até 3.402823E38 para positivos) e DOUBLE (8 bytes -1.79769313486232E308 até -4.94065645841247E-324 para negativos;4.94065645841247E-324 até 1.79769313486232E308 para positivos). Em ponto flutuante, várias configurações podem representar o mesmo valor. Por exemplo, 102E1 = 1,02E3 = 0,102E4. A representação aonde o dígito antes da vírgula é zero, e o após a vírgula é não zero é chamada de representação normalizada.

Representação decimal

As representações em ponto fixo e ponto flutuante são ótimas para cálculos matemáticos, em aplicações científicas. Para aplicações comerciais, como contabilidade e sistemas financeiros, precisa-se de um sistema que não tenha problemas de precisão, nem de conversão, que aparecem nas conversões de números decimais fracionários para binário (por exemplo, 0,1 na base 10 é uma dízima nas bases 2 e 16).

A solução encontrada para equilibrar a necessidade de realizar eventuais operações aritméticas com valores decimais, mas representá-los internamente, sempre de forma binária, constituiu-se um método híbrido de representação de dados, denominado código binário decimal (Binary Coded Decimal – BCD)

Page 44: Apostila Geral Arq Comp01

O sistema BCD (código binário decimal) é um misto de decimal com binário, na forma BCD os dados decimais usados em um programa, em vez de serem diretamente convertidos da base 10 para a base 2, são representados internamente por códigos binários correspondentes a cada algarismo decimal, conforme mostrado na figura.

Decimal BinárioBCD

0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001

Assim, por exemplo, o número decimal 7458 seria representado no código BCD da seguinte forma:

0111 0100 0101 1000( 7 ) ( 4 ) ( 5 ) ( 8 )

Entre os algarismos sem código válido em decimal (códigos representativos dos valores decimais de 10 a15) é comum utilizar alguns deles para indicar o sinal do número. Por exemplo, alguns sistemas utilizam1100 para representar o sinal de (+) e 1101 para representar o sinal de (-).

Atualmente só é usado o sistema conhecido como decimal compactado. Nesse sistema, a cada 4 bits têm-se um dígito decimal, valendo de 0 a 9. As configurações de A a F só são usadas no dígito mais à direita, para representar o sinal (B e D representam o -, enquanto A, C, E e F representam o +).

Nos mainframes IBM, os números em decimal compactado podem ter até 16 bytes de comprimento, permitindo números com até 31 dígitos de precisão, já que o sinal gasta meio byte. Nos computadores aonde a CPU não tem instruções para operar com números nessa representação, é necessária a implementação de rotinas para efetuar as 4 operações com esses números. Também se pode implementar a aritmética decimal compactada nos co-processadores aritméticos, para economizar tempo de execução de programas.

Page 45: Apostila Geral Arq Comp01

Funções lógicas – Portas lógicas

Os circuitos lógicos processam informações utilizando-se do sistema de numeração binária que correlaciona os níveis lógicos, alto e baixo, ou seja, 0 e 1. Sendo uma preposição caracterizada sempre como "verdadeira" ou "falsa", pode-se fazer analogia com uma lâmpada cujos estados serão correlacionados a seguir:

Várias correlações são válidas, tais quais:

1 ligado alto verdadeiro sim.0 desligado baixo falso não

Operações lógicas

A relação entre duas ou mais variáveis que representam estados binários é estabelecida por meio de três operações lógicas, classificadas em:

produto lógico (função e) ; soma lógica (função ou) ; inversão (função não).

Suponha que uma lâmpada estará acesa sempre que duas condições forem satisfeitas. São elas:a) a lâmpada esteja boa; e.b) o interruptor esteja ligado.

Estabelecidas as premissas, suponha que S seja a proposição de que a lâmpada esteja acesa ou apagada, verdadeiro ou falso, respectivamente. S será verdadeiro quando A e B forem verdadeiros. Se A ou B falsos, S será necessariamente uma proposição falsa. As relações entre as variáveis A e B e A ou B representam operações lógicas. S é também definido, a saída da função lógica desse exemplo.

Tabela Verdade

Também chamada de tabela de combinações. A confecção da tabela verdade é, em geral, o primeiro passo para a análise e compreensão de um problema lógico.

Montar uma tabela verdade é escrever todas as combinações possíveis dos estados lógicos de todas as variáveis da função, incluindo o estado lógico resultante de cada combinação. O número de combinações possíveis de "n" variáveis é na ordem de 2n.

Montagem da tabela verdade - exemplo anterior. Análise das possibilidades:1- lâmpada queimada, interruptor desligado;2- lâmpada queimada, interruptor ligado;

Page 46: Apostila Geral Arq Comp01

3- lâmpada boa, interruptor desligado; e.4- lâmpada boa, interruptor ligado.

A seguir, monta-se a tabela, criando as colunas das premissas, também conhecidas como variáveis de entrada. Para o caso, tem-se as variáveis A e B. Tais colunas devem ser preenchidas segundo o número total de hipóteses avaliadas no problema. Como são apenas duas variáveis de entrada, tem -se quatro combinações de ocorrências. A última coluna define o resultado lógico esperado, ou variável de saída.

A variável S é verificada segundo o método dedutivo pelo argumento afirmação da antecedente.

A B SF F FF V FV F FV V V

A B S0 0 00 1 01 0 01 1 1

Organização do raciocínio na solução de problemas de lógica.

Interpretação lógica Tabela verdade Gerador de funções lógicas

Funções Lógicas - Portas lógicas

Define-se função lógica como aquela definida na álgebra elementar, porém sua imagem fica restrita aos valores representados pelos níveis lógicos 0 e 1.No exemplo da lâmpada, pode-se prever que a equação lógica observada da tabela de combinações é:

S = A x B

Funções: E, OU, NÃO, NE e NOU

Nas funções lógicas, teremos penas dois estados:

- o estado 0 (zero) e- o estado 1 (um).

O estado 0 (zero) representará, por exemplo:- ausência de pressão ( sistemas pneumáticos )- aparelho desligado- desacionado- ausência de tensão- etc.

O estado 1 (um) representará a situação contrária:- presença de pressão- aparelho ligado acionado- presença de tensão- etc.

Page 47: Apostila Geral Arq Comp01

Função E ou AND

É aquela que executa a multiplicação de duas ou mais variáveis.

S = A . B, onde se lê, S = A E B

Convenções:Chave aberta = 0 Lâmpada apagada = 0Chave fechada = 1 Lâmpada acessa = 1

Circuito equivalente

Situações possíveis1° - Se tivermos as chaves A e B aberta ( 0 ), nesse circuito não haverá circulação de corrente, logo a lâmpada estará apagada: (A . B = 0 ).

2° - Se tivermos a chave A aberta ( 0 ) e a chave B fechada ( 1 ), não haverá circulação de corrente, logo a lâmpada estará apagada: (A . B = 0 ).

3° - Se tivermos a chave A fechada (1) e a chave B aberta (1), não haverá circulação de corrente, logo a lâmpada estará apagada: (A . B = 0 ).

4° - Se tivermos a chave A fachada (1) e a chave B fechada (1), haverá circulação de corrente, logo a lâmpada estará acesa: (A . B = 1 ).

Analisando as possibilidades, conclui-se que só teremos a lâmpada acesa quando as chaves A e Bestiverem fechadas; nível lógico 1.

Tabela verdade e sua respectiva porta lógica

A B S0 0 00 1 01 0 01 1 1

Tabela verdade Porta lógica AND

A porta AND executa a tabela verdade da função AND, ou seja, têm-se a saída no "estado um ", e somente se as duas entradas forem iguais a um, e teremos a saída igual a zero nos demais casos. O conceito é utilizado para qualquer número de variáveis de entrada.

A saída permanecerá no "estado um" se, e somente se as N entradas forem iguais a um (1), e permanecerá no "estado zero" nos demais casos.

Page 48: Apostila Geral Arq Comp01

Função OU ou OR

É aquela que assume o valor um (1) quando uma ou mais variáveis de entrada forem iguais a um (1) e assume valor zero (0) se, e somente se todas as variáveis de entrada forem iguais a zero (0), É representada da seguinte forma:

S = A + B, onde se lê S = A OU B.

Convenções:lâmpada acesa = 1 chave ligada = 1lâmpada apagada = 0 chave desligada = 0

Circuito equivalente

Nota-se que teremos a lâmpada ligada, quando a chave A ou chave B ou ambas estiverem acionadas.

Tabela verdade e sua respectiva porta lógica

A B S0 0 00 1 11 0 11 1 1

Tabela verdade Porta lógica OU

Poderemos ter também, porta OU com N variáveis. Teremos a saída no estado um, quando uma ou mais variáveis de entrada forem iguais a um (1), e teremos a saída no estado zero (0) se, e somente se todas as variáveis de entrada forem iguais a zero (0).

Função NÃO ou NOT

A função NÃO ou função complemento é aquela que inverte o estado da variável, ou seja, se a variável estiver em zero (0), vai para um (1), e se a variável estiver em um (1) vai para zero (0). É representada da seguinte forma:

S = A

Essa barra ou apóstrofo sobre a letra que representa a variável significa que esta sofre uma inversão. Também podemos dizer que A é a negação de A.

Circuito elétrico

Convenções:lâmpada acesa = 1 chave ligada = 1lâmpada apagada = 0 chave desligada = 0

Page 49: Apostila Geral Arq Comp01

Quando a chave A estiver aberta (0), passará corrente pela lâmpada e esta acenderá (1).

Quando a chave A estiver fechada (1), a lâmpada estará apagada (0), pois curto-circuitaremos a lâmpada.

Tabela verdade e sua respectiva porta lógica

A S0 11 0

Tabela verdade Porta inversora

O inversor é o bloco lógico que executa a função NÃO. Sua representação poderá ser feita para outras portas lógicas tais como:

após um outro bloco lógico antes de um outro bloco lógico

Exemplo:

=

Função NÃO E, NE ou NAND

Como o próprio nome diz, essa função é uma composição da função E com a função NÃO, ou seja, teremos a função E invertida. Esta é representada da seguinte forma:

S = A . B

Onde: o traço em cima indica que teremos a inversão do produto A . B

Convenções:lâmpada acesa = 1 chave ligada = 1lâmpada apagada = 0 chave desligada = 0

Circuito elétrico

A B S0 0 10 1 11 0 11 1 0

Tabela verdade porta lógica NAND

Page 50: Apostila Geral Arq Comp01

Função NOR ou NOU

Analogamente a função NAND, a função NOR é a composição da função NÃO com a função OU, ou seja, a função NOR será o inverso da função OU. Esta é representada da seguinte forma:

S = A + B

A B S0 0 10 1 01 0 01 1 0

Convenções:lâmpada acesa = 1 chave ligada = 1lâmpada apagada = 0 chave desligada = 0

Tabela verdade Porta lógica NOR

Função "OU - EXCLUSIVO" (XOR)

A função lógica OU - EXCLUSIVO apresenta como resultado nível lógico 1, quando as variáveis de entrada forem diferentes entre si.

Esta é representada da seguinte forma: S = A + B

Convenções:lâmpada acesa = 1 chave ligada = 1lâmpada apagada = 0 chave desligada = 0

Circuito elétrico

A B S0 0 00 1 11 0 11 1 0

Tabela verdade Porta lógica XOR

Page 51: Apostila Geral Arq Comp01

Nota: A função lógica OU - EXCLUSIVO pode ser também representada por uma soma de produtos obtida a partir da análise da tabela verdade.

A B

AC

A B S0 0 00 1 11 0 11 1 0

BD Tabela verdade

A expressão obtida a partir desta análise apresenta-se da seguinte forma: S = A B + A B

Função COINCIDÊNCIA (XNOR)

A função lógica COINCIDÊNCIA, em contraposição à OU-EXCLUSIVO, tem como resultado nível lógico 1, sempre que existir em suas variáveis de entrada uma igualdade. Esta é representada da seguinte forma:

S = A . B

Convensões:lâmpada acesa = 1 chave ligada = 1lâmpada apagada = 0 chave desligada = 0

Circuito elétrico

A B S0 0 10 1 01 0 01 1 1

Tabela verdade Porta lógica XNOR

Nota:A função lógica OU - EXCLUSIVO pode ser também representada por uma soma de produtos obtida a partir da análise da tabela verdade.

A

B

AC B

A B S0 0 1

S 0 1 01 0 01 1 1

Tabela verdade

A expressão obtida a partir desta análise apresenta-se da seguinte forma: S = A . B + A . B

Page 52: Apostila Geral Arq Comp01

Interligação entre expressões, circuitos e tabelas verdade.

Expressões booleanas geradas por circuitos lógicos.Podemos escrever a expressão booleana que é executada por qualquer circuito lógico. Por Exemplo:

1) AB S = A.B + C C

2) AB S = (A + B) . (C + D) CD

Circuitos obtidos através de expressões booleanas.Podemos também desenhar um circuito lógico que execute uma expressão booleana qualquer. Por exemplo:

Obs. Existem várias formas de desenharmos este circuito, aqui temos dois exemplos, mas se quisermos podemos desenhar de outras formas.

1) A . B . C + (A + B)

A BC S = A . B . C + (A + B) AB

A BC S = A . B . C + (A + B) AB

2) [(A + B) + (C . D)] . D

A B

C S = [(A + B) + (C . D)] . D D

Page 53: Apostila Geral Arq Comp01

Tabelas verdade que representam expressões ou circuitosUma maneira de se efetuar o estudo de uma função booleana é a utilização da tabela verdade, onde temos a solução para todas as situações possíveis de combinações.

1) S = (A+B) . A

A B A + B S = (A+B) . A0 0 0 00 1 1 01 0 1 11 1 1 1

2) S = A + B + A B C

A B C A C ABC S = A + B + A B C

0 0 0 1 1 0 1

0 0 1 1 0 0 1

0 1 0 1 1 0 1

0 1 1 1 0 0 1

1 0 0 0 1 0 0

1 0 1 0 0 0 0

1 1 0 0 1 1 1

1 1 1 0 0 0 1

Exercícios:

1) Monte a expressão e a tabela verdade do circuito abaixo.

AB S BC

2) Monte o circuito e a tabela verdade da expressão: S = ABC + ABC + A B C + A B C