• Nenhum resultado encontrado

ArqComp Parte1 FILC

N/A
N/A
Protected

Academic year: 2021

Share "ArqComp Parte1 FILC"

Copied!
25
0
0

Texto

(1)

FACULDADE DE INFORMÁTICA

LEMOS DE CASTRO

CURSO DE BACHARELADO EM

SISTEMAS DE INFORMAÇÃO.

RESUMO INFORMATIVO DE

TECNOLOGIA DE COMPUTADORES

Parte I

Professor: D.Sc. Carlos Augusto Sicsú Ayres do Nascimento

Autores: Aquilino R. Leal,

Carlos A. Sicsú A. do Nascimento

Martha Cristina Barbedo

Referências Bibliográficas:

 Tanenbaum, Andrew S. - Organização de Computadores. 3ª Edição.

Editora PHB.

 Monteiro, Mário A. - Introdução à Organização de Computadores. Editora LTC.

Weber, Raul Fernando - Fundamentos de Arquitetura de Computadores. Editora Sagra

(2)

1 – História da Computação

1.1 – Fundamentos da Computação

1700 AC - Povos mesopotâmicos (primeiras tabuadas) 1200 DC - Ábaco chinês

1614 - Bastões de Napier (logaritmos) 1633 - Régua de cálculo(ougthed)

1642 - Máquina de calcular mecânica (Blaise Pascal) 1822 - Máquina de diferença (Babbage)

1833 - Máquina analítica (programável) 1880 - Perfuradora de cartões (Hollerith)

 Censo de 1890 dos EUA

 Criou a Tabulating Machine Company (futura IBM)

1.2 - Primeira Geração – Válvulas (1945-1955)

 Estímulo com a segunda guerra mundial e a busca para interceptar mensagens alemães criptografadas pela máquina ENIGMA;

 Construção do COLOSSOS pelos britânicos para ajudar nos cálculos matemáticos necessários para decriptografar (primeiro computador eletrônico do mundo). O seu projeto foi logo abandonado;

 Os americanos necessitavam de máquinas que calculassem tabelas de alcance para as miras de canhões;

 ENIAC (Eletronic Numeral, Integrator And Computer – Computador e Integrador Numérico Eletrônico), primeiro computador comercial eletrônico.

Características:

18.000 válvulas; 1.500 relés; 30 toneladas; 140 KW de potência;

Arquitetura:

 20 registradores (capazes cada um de armazenar um número decimal de 10 dígitos;  Programação através de 6.000 chaves multiposicionais e interconexão de um grande

número de soquetes através de um verdadeiro emaranhado de cabos;

Início da construção em 1943 e término em 1946 (após) o final da guerra;  EDSAC – Primeiro computador operacional (1949);

(3)

Tecnologia de Computadores Página:3/25  EDVAC (Eletronic Discrete Variable Automatic Computer) – ComputadorAutomático de

Variáveis Discretas) criado pela Eckert-Mauchley Computer Corporation no vale do silício e atualmente chama-se Unisys;

 Máquina AIS, uma versão do EDVAC feita por John Von Neumann. John percebeu que os computadores eram programados com um grande número de chaves e cabos e era muito lenta. Ele pensou em uma forma digital de programação, na memória do computador juntamente com os dados. Seu projeto ficou conhecido como Máquina de Von Neumann e foi utilizada no EDSAC, que passou a ser o primeiro computador com programa armazenado. A máquina de Von Neumann possuía cinco partes básicas:

 A memória;

 A ULA (Unidade Lógica e Aritmética);  A UC (Unidade de Controle);

 Equipamentos de Entrada;  Equipamentos de Saída;

 IBM 701 (1953) – A IBM, até então uma

pequena empresa da fabricação de perfuradoras de catões e de máquinas mecânicas de classificação de catões, criou seu primeiro computador. O IBM701 tinha 2K de palavras de 36 bits, com duas instruções por palavra. Foi a primeira de muitas máquinas científicas e dominaram o mercado durante uma década;

 IBM 704 (1956) – Possuía 4k de memória de núcleo, instruções de 36 bits r hardware para ponto flutuante (floating-point);

(4)

1.3 - Segunda Geração – Transistores (1955-1965)

O transistor foi inventado por John Bardeen, Walter Brattain e William Shockley no Bell Labs em 1948. Este trabalho lhes rendeu o premio Nobel de Física de 1956. Durante uma década, a da segunda geração, o transistor revolucionou os computadores.

 TX-0 (Transistorized eXperimental computer 0) - foi o primeiro computador transistorizado e foi desenvolvido no Lincoln Laboratory do MIT. Ele era um protótipo do TX-2;

 PDP-1 (1961) – era uma máquina de 4K palavras de 18 bits e um tempo de ciclo de 5 microssegundos. Tinha metade do desempenho de um IBM709 que custava milhões ao custo de US$120,000. A DEC vendeu dezenas dessas máquinas e criou a industria de minicomputadores;

 PDP-8 – Mais tarde a DEC criou o PDP-8, que era uma máquina de apenas 12 bits, mas, muito mais barata, custava apenas US$16,000. Introduziu o Barramento único (omnibus). Foram vendidas 50.000 máquinas PDP-8.

Barramento é um conjunto de fios paralelos utilizados para conectar os componentes de um computador, é através deles que os dados e instruções passam de um componente para outro. Quanto mais rápido for o barramento, mais rápida será a máquina.

 IBM7090 – Versão transistorizada do IBM709.

 IBM7094 – tinha um tempo de ciclo de 2 microssegundos e 32K palavras de 36 bits de memória de núcleo. Esta máquina teve muita aceitação na computação científica;

 IBM1401 – Esta máquina era capaz de ler e gravar em fitas magnéticas, ler e perfurar cartões e imprimir quase tão rápido quanto o 7094. Era muito mais barata que o 7094 e era péssima para computação científica, mas, muito boa para manter registros comerciais;

 CDC6600 – Muito mais rápida que o 7094, era uma máquina paralela. Possuía diversas unidades funcionais para efetuar adições, outras para multiplicações e uma outra para divisões, e todas podiam trabalhar em paralelo. Embora necessitasse de cuidados na programação era possível executar 10 instruções simultaneamente.

(5)

Tecnologia de Computadores Página:5/25

1.4 - Terceira Geração – Circuitos Integrados (1965-1980)

Com o advento do circuito integrado, dezenas de transistores puderam ser colocados em uma única pastilha. Este encapsulamento tornou possível construir máquinas menores , mais rápidas e mais baratas.

 IBM System/360 – por volta de 1964 a IBM tinha o problema da incompatibilidade dos sistemas 7094 e 1401. Quando chegou o momento de substituir estas séries, a IBM deu um passo radical e lançou o System/360, baseado em circuitos integrados e projetada para computação científica e comercial. O 1401 poderia ser substituído por um System360 Modelo 30 e o 7094 poderia ser substituído por um System360 Modelo 75. O Modelo 75 era muito mais rápido e mais caro, mas, um software escrito para um deles, poderia ser executado no outro. O system/360 inovou com o conceito da multiprogramação, com vários programas presentes na memória simultaneamente. Assim, se um programa estivesse esperando uma entrada ou saída, outro poderia ser executado, sem uma enorme perda de tempo. Este sistema, poderia emular (simular) outros computadores, ou seja, um modelo 30 poderia emular um 1401 e um 75 poderia emular um 7094. Outra característica é a capacidade de endereçamento de 16 megabytes 224 bytes;

Características da família system/360

Propriedade Mod.30 Mod.40 Mod.50 Mod.65

Desempenho relativo 1 3,5 10 21

Tempo de ciclo (ns) 1000 625 500 250

Memória Máxima (K) 64 256 256 512

Bytes buscados por ciclo 1 4 4 16

Número máximo de canais de dados 3 4 4 6

 DEC PDP-11 – deu um enorme passo a frente no mundo dos minicomputadores. Foi um sucessor do PDP-8 de 16 bits. Possuía registradores orientados para palavras e memória orientada para bytes e tinha um excelente custo X benefício.

(6)

1.5 - Quarta Geração – Computadores Pessoais e VLSI (1980-200?)

Nos anos 80, passou a ser possível, colocar dezenas de milhares e depois, centenas de milhares de e finalmente milhões de transistores em uma única pastilha. Antes do PDP-11, os computadores eram tão grandes e caros que as companhias e universidades tinham departamentos especiais, denominados centros de computação para operá-los. Com os minicomputadores, um departamento era capaz de ter sua própria máquina. Iniciamos então a era do computador pessoal. Estes eram utilizados diferentemente dos grandes computadores, pois, processavam textos, planilhas e inúmeras aplicações altamente interativas.

1.6 – Breve Histórico da Programação

Linguagens de programação - permitem ao homem expressar através de programas o que o computador deve executar

ENIAC - Programado em linguagem de máquina (Binário) 1957 - Fortran - problemas matemáticos

1958 - Algol - processamento científico 1959 - Cobol - aplicações comerciais 1965 - Basic - fácil de ser aprendida 1970 - Pascal - programação estruturada 1977 - Fortran 77 - programação estruturada Outras:

1977 – Modula 2 1978 - C

1981 - Smalltalk 1983 – ADA

(7)

Tecnologia de Computadores Página:7/25

2 – Sistemas Numéricos

O homem necessitou desenvolver símbolos que representassem as quantidades e grandezas. A base dos sistemas de numeração criadas pelo homem é constituída de símbolos e algarismos.

2.1 – Sistema Decimal

Entre os diversos sistemas numéricos existentes, o decimal é o mais utilizado e aquele que usamos no nosso dia-a-dia. Ele é assim chamado porque tem base 10, isto é, porque utiliza dez dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) na representação de seus numerais, sendo expressos por meio de potências de 10 que é, adivinhe, a sua base!.

Suponha o numeral 324 do sistema decimal. Ele é formado assim: 342 = 300 + 40 + 2. Mas podemos escrever de outra maneira. Veja: 3 x 102 + 4 x 101 + 2 x 100, ou seja, em potências inteiras de 10, aqui destacadas em vermelho.

Observou que a quantidade de dígitos da parte inteira é três e as potências da base 10 são, respectivamente, 2, 1 e 0? Então podemos escrever: 342 = 3 x 103-1 + 4 x 103-2 + 2 x 103-3 ou 342 = 3 x 10n-1 + 4 x 10n-2 + 2 x 10n-3 onde n é o total de dígitos. Acompanhou?

Confirmamos que os algarismos, dependendo do seu posicionamento, têm um peso (valor

relativo). Àquele situado na extrema esquerda do número será o de maior valor (está sendo

multiplicado pela maior potência da base), ou seja, o dígito mais significativo (MSD - Most

Significant Digit); de modo análogo; o que estiver situado na extrema direita será o de menor valor

(pois está sendo multiplicado pela menor potência), ou seja, o dígito menos significativo (LSD - Least Significant Digit).

Vamos a outros exemplos e treinar a nossa ‘velha matemática’! Em azul o MSD e em rosa o LSD. Faça o máximo esforço para acompanhar o desenvolvimento. É muito importante para ficar ‘esperto’!

 1.946  1 x 103 + 9 x 102 + 4 x 101 + 6 x 100  9.024  9 x 103 + 0 x 102 + 2 x 101 + 4 x 100

 10.551  1 x 104 + 0 x 103 + 5 x 102 + 5 x 101 + 1 x 100

Já pensou como proceder para números não inteiros? Veja o par de exemplos abaixo e conclua!  19,946  1 x 101 + 9 x 100 + 9 x 10-1+ 4 x 10-2 + 6 x 10-3

 30,246  3 x 101 + 0 x 100 + 2 x 10-1+ 4 x 10-2 + 6 x 10-3 É só dar prosseguimento às potências inteiras da base...!

(8)

2.2 – Sistema Binário

Tem por base 2, ou seja, é formado por apenas dois dígitos (0 e 1) e, neste sistema, qualquer número é expresso por meio de potências de 2.

Não esqueça: os dígitos binários 0 e 1 são chamados abreviadamente de bits (do inglês binary

digits).

O ‘funcionamento’ é semelhante ao do sistema decimal: em vez da base 10 temos a base 2. Veja os exemplos abaixo onde em azul se encontra o MSb (Most Significant bit – bit mais

significativo) e em rosa o LSb (Least Significant bit – bit menos significativo).  1011  1 x 23 + 0 x 22 + 1 x 21 + 1 x 20

 11100  1 x 24 x 1 x 23 + 1 x 22 + 0 x 21 + 0 x 20

 111001  1 x 25 x 1 x 24 + 1 x 23 + 0 x 22 +0 x 21 + 1 x 20

Repare que se ‘pintar’ uma vírgula no numeral isso não nos assusta! Veja:  11,101  1 x 21 x 1 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3

 0,1011  0 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 1 x 2-4

Parece bobagem utilizar este sistema de numeração. Mas muito cuidado: os computadores e os equipamentos digitais trabalham normalmente com apenas dois estados ou níveis de tensão, tais como: chave aberta (0) e chave fechada (1); ausência de tensão (0) e presença de tensão (1); transistor conduzindo (0) e transistor aberto (1). Por estes motivo, o sistema binário é o sistema numérico ideal para o computador compreender e operar!

2.3 – Sistema Octal

Este sistema numérico de base 8 utiliza 8 símbolos, exatamente os 8 primeiros símbolos do sistema decimal (0, 1, 2, ... ,7) sendo muito utilizado em tempos passados devido a sua correspondência natural com o sistema binário (8 = 23) mas atualmente está em desuso.

2.4 – Sistema Hexadecimal

É o sistema numérico que tem base 16, utiliza, portanto 16 símbolos. Quais são eles? Boa pergunta não é mesmo? É claro que podemos usar os dez símbolos do sistema decimal mas o que fazer para os seis restantes?

E agora... quem nos poderá salvar?

Eu! O VERMELHÃO!! Utilizem as seis primeiras letras maiúsculas do abecedário!!... Vocês não contavam com minha astúcia!

(9)

Tecnologia de Computadores Página:9/25 Toda razão: os 16 dígitos são os conhecidos 0, 1, 2, ..., 9, mais as letras A, B, C, D, E e F, como mostra o a seguir com a respectiva equivalência no sistema decimal e no próprio binário.

É extremamente importante verificar a ‘intimidade’ deste sistema com o sistema binário (‘intimidade’ semelhante que apresenta o sistema octal). De fato, note que 16 = 24 – o interesse é no expoente dessa potência, no caso quatro (lembre-se que no sistema octal o expoente é 3). Essa vantagem advém do fato dessas informações que poderem ser divididas em pacotes de quatro bits e, para cada quatro bits, existe um correspondente dígito hexadecimal (vide quadro 1).

O sistema hexadecimal é o mais utilizado na programação de computadores, pois agora as informações podem ser representadas de forma mais compacta evitando o incomodo sistema binário.

Observe também que para o programador é mais fácil trabalhar com números hexadecimais que com binários, mais extensos e difíceis de memorizar. É evidente que, como o computador só entende binários, os hexadecimais devem ser convertidos de alguma forma para binários antes de serem processados pelo computador (não se preocupe: a própria máquina faz isso para nós!).

Esses pacotes de quatro bits recebem o nome de tétradas ou nibbles (lê-se: “nibôs”) e são de extrema importância para a representação dos dados decimais no computador.

Quadro 1

HEXADECIMAL

DECIMAL BINÁRIO

0

0

0000

1

1

0001

2

2

0010

3

3

0011

4

4

0100

5

5

0101

6

6

0110

7

7

0111

8

8

1000

9

9

1001

A

10

1010

B

11

1011

C

12

1100

D

13

1101

E

14

1110

F

15

1111

(10)

Utilizando a primeira e segunda coluna do quadro de conversão acima (quadro 1) e considerando agrupamentos de quatro bits temos as seguintes conversões binário-hexadecimal:

 11012 = DH (aqui a conversão é imediata ao consultar o quadro anterior)

 10112 = BH (idem)

 100100112 = ?H  100100112 = 93H (notou a separação dos bits em grupos de quatro?)

 1001111012 = ?H  1001111012 = 13DH (notou que a separação, de quatro em quatro, foi

feita da direita para a esquerda?)

 1001011001111112 = 4B3F16 (o índice 16 ou H representa a mesma coisa!)

 F0CAH = 11110000110010102 (você ‘sacou a jogada’ das cores?)

 1FADA16 = 11111101011011010B (o índice 2 ou B representam a mesma coisa!)

 103H = 1000000112 (assim como no exemplo anterior, foram ignorados os zeros à

esquerda)

2.5 – Conversão de Bases

Da base uma b para o sistema decimal

Agora aprenderemos como converter um numeral expresso em uma base qualquer em seu correspondente na base decimal – apenas abordaremos o sistema binário e o sistema

hexadecimal por serem os de primordial importância para o nosso objetivo, mas para outras bases o procedimento é similar.

A regra geral é bastante simples: basta adicionar os produtos da série de potências da base do sistema em que o numeral está representado e que será desdobrado. Confuso? Nem tanto...

Para facilitar o Quadro 2 adiante apresenta algumas potências de 2 para facilitar a conversão do sistema binário para o sistema decimal.

(11)

Tecnologia de Computadores Página:11/25 2-8 0,00390625 2-7 0,0078125 2-6 0,015625 2-5 0,03125 2-4 0,0625 2-3 0,125 2-2 0,25 2-1 0,5 20 1 21 2 22 4 23 8 24 16 25 32 26 64 27 128 28 256 29 512 210 1.024 211 2.048 212 4.096 213 8.192 214 16.384 215 32.768 216 65.536 217 131.072 218 262.144 219 524.288 220 1.048.576 221 2.097.152 222 4.194.304 223 8.388.608 224 16.777.216 Quadro 2

(12)

Já no Quadro 3 encontramos algumas das potências inteiras de 16 16-3 0,000244141... 16-2 0,00390625 16-1 0,0625 160 1 161 16 162 256 163 4.096 164 65.563 165 1.048.576 166 16.777.216 167 268.435.456 168 4.294.967.296 Quadro 3 Binário - decimal

Para converter um número binário no seu correspondente decimal, basta somarmos os produtos da série de potências da base (no caso 2) em que o binário é desdobrado.

Os exemplos a seguir esclarecem:

 10011B = 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 16 + 0 +0 + 2 + 1 = 19D

 1001111B = 1 x 26 + 0 x 25 + 0 x 24 + 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 79D

 11,1012 = 1 x 21+ 1 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 = 2 + 1 + 0,5 + 0 + 0,125 = 3,625D

 1011,1002 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 = 11,510 Hexadecimal - decimal

A conversão de um numeral hexadecimal (base 16) no seu correspondente decimal é feita través da série de potências (da base 16) como fizemos acima para o sistema binário.

Exemplificando:

 1FABH = 1 x 163 + 15 x 162 + 10 x 161 + 11 x 160 = 4.096 + 3.840 + 160 + 11 = 8.107D (há

necessidade de converter os símbolos não numéricos para o sistema decimal – utilize o quadro1 caso sinta dificuldade nessa conversão.

 FE0H = 15 x 162 + 14 x 161 + 0 x 160 = 3.840 + 224 + 0 = 4.064D

 1A,1216 = 1 x 161 + 10 x 160 + 1 x 16-1 + 2 x 16-2= 16 + 10 + 0,0625 + 0,007813... 

1A,1216  26,070313...D

Do sistema decimal para uma base b

Aqui também apenas iremos nos deter no sistema binário e no sistema hexadecimal, mas o procedimento a ser descrito se aplica a qualquer outro sistema de contagem de base b desde que, é claro, façamos as devidas substituições.

(13)

Tecnologia de Computadores Página:13/25

Decimal - Binário

Para converter um número decimal em binário, dividimos sucessivamente o número decimal por 2 até chegarmos ao quociente 0 (zero). O número binário correspondente será formado pelos restos colocados na ordem inversa em que foram encontrados - isto tem fundamento já que nesta base os agrupamentos de contagem são feitos, como vimos, de 2 em 2. Os exemplos a seguir esclarecem.

 23D = ?B 23 2 1 11 2 1 5 2 1 2 2 0 1 2 1 0 Portanto: 23D = 10111B  71D = ?B 71 2 1 35 2 1 17 2 1 8 2 0 4 2 0 2 2 0 1 2 1 0 Assim: 71D = 1000111B

Caso o número decimal seja muito grande, por exemplo, 12.345, teremos de realizar uma ‘super divisão’ que nem vai caber nesta tela ou página! Como proceder nesses casos? Como reduzir o nosso esforço e, é claro, a quantidade de divisões?

A solução será vista adiante. Aguarde e não perca! Enquanto ela não vem temos outro desafio: como converter um número decimal fracionário em binário?

Decimal - Hexadecimal

Aqui o procedimento é igual ao realizado no sistema binário. A diferença é a base: agora b = 16. Acompanhe os exemplos abaixo pois, plagiando um dito popular, um exemplo vale mais de mil palavras!

(14)

 618D = ?H

618 16

10 38 16

6 2 16

2 0

Portanto: 618D = 26AH – você ‘sacou’ que 10 no sistema hexadecimal se representa pelo digito A?

Em caso de dúvida recorra ao quadro 1!  59.698D = ?16 59698 16 2 3731 16 3 233 16 9 14 16 14 0 Conseqüentemente: 59.698D = E93216

Conclusão e exercícios finais

Ah! Já ia esquecendo-me de mostrar como podemos fazer a conversão de um número decimal ‘grande’ para o binário. Eu faço o seguinte: transformo para o sistema hexadecimal, que requer menor manipulação aritmética, e deste passo para o binário ‘numa boa’ pois sabemos (?!) que a cada quatro bits se associa um digito hexadecimal.

Entendeu?

Vamos exemplificar para não complicar.  22.153D = ?2

 Primeiro passo: converter o numeral decimal para o sistema hexadecimal 22153 16 9 1384 16 8 86 16 6 5 16 5 0 Assim: 22.153D = 5689H A E

(15)

Tecnologia de Computadores Página:15/25 Segundo passo: converter o hex 5689 para binário tal como fizemos logo no inicio:

5689H = 01010110100010012 = 1010110100010012 – abandonamos os zeros mais à

esquerda.

Finalmente, 22.153D = 1010110100010012 que é a tão procurada resposta – experimente

fazer usando a divisão por 2 e constate a mão de obra envolvida. É coisa de doido!! Já que estamos com a ‘mão na massa’, ou melhor, com a mão no lápis, vamos treinar um pouco mais apresentando algumas outras situações ainda não abordadas. Não é necessário dizer que você TEM que acompanhar as soluções/desenvolvimentos apresentados em cada situação!

 22153Q = ?H

Neste caso fazemos ‘ponte’ no sistema binário, ou seja:

22153Q = 010010001101011B agora convertemos este binário para o sistema

hexadecimal (lembre-se: agrupamentos de quatro!):

010010001101011B = 246BH, conseqüentemente: 22153Q = 246BH

 253D = ?6

Sem crise! A metodologia não se altera! A diferença está na base, no caso b = 6. 253 6 1 42 6 0 7 6 1 1 6 1 0 Portanto: 253D = 11016  123456 = ?D Imediatamente: 123456 = 1 x 64 + 2 x 63 + 3 x 62 + 4 x 61 + 5 x 60 = 1.296 + 432 + 108 + 24 + 5, portanto 123456 = 1.865D  4315 = ?7

Vamos fazer ‘ponte’ no sistema decimal:

4315 = 4 x52 + 3 x 51 + 1 x 50 = 100 + 15 + 1  4315 = 11610.

Convertendo 11610.para a base 7...

116 7

4 16 7

2 2 7

(16)

Então: 11610 = 2247, finalmente: 4315 = 2247, ou seja o numeral cento e dezesseis

corresponde ao numeral dois-dois-quatro no sistema de base 7.

Agora é a tua vez de ‘pegar no batente’ resolvendo a série de exercícios a seguir. Não deixe para amanhã. Se necessário utilize a máquina de calcular.

Abraços e boa sorte!

Exercícios

1. Considerando a equivalência 249D = 13Bb determine o valor da base b.

2. A maioria das pessoas conta até 10 utilizando os dedos. Imaginando cada um dos dedos como um dígito binário (bit) e convencionando que o dedo estendido significa o bit 1 e recolhido significa 0, até quanto você poderá contar usando as duas mãos?

3. Dizer que 12.345D = 12345H é uma afirmativa errada ou certa? Justifique.

4. Um sistema de contagem de base b (b  2, inteiro) utiliza b símbolos para representar qualquer numeral. Verdadeiro ou falso?

5. Converter para o sistema decimal 123,346.

6. Complete as células que faltam no quadro abaixo:

Decimal Binário Octal Hexadecimal 89 11100010 561 1F7 10000111111 FACA 65.535 56 256

7. Suponha um numeral N de n dígitos pertencente a um sistema de base b (b  2, inteiro). Responda:

a) Quantos são os dígitos desse sistema? Qual é o menor e qual é o maior deles?

b) Sendo m um número inteiro não negativo determine o valor bm expresso nessa base b.

8. A partir do valor hexadecimal 1FACA escreva os onze números pares que seguem em seqüência.

(17)

Tecnologia de Computadores Página:17/25

Soluções e respostas

1. Basta resolver a equação de segundo grau b2 + 3b +11 = 249 onde se obtém o valor 14 para

b (valores negativos para b devem ser ignorados).

2. Como são dez os dedos dez serão os bits, portanto, o maior numeral binário que pode ser expresso pelos dez dedos das mãos é 1111111111; este numeral binário equivale ao decimal 1.023 que é a resposta procurada.

3. Errada pois basta observar que o digito 1 (MSD) do segundo numeral tem um valor relativo maior no segundo numeral (164) do que no primeiro (104), conseqüentemente o segundo numeral representa uma quantidade MAIOR que a representada pelo número decimal.

4. Verdadeiro.

5. 51,6111... resultado da expressão 1 x 62 + 2 x 61 + 3 x 60 + 3 x 6-1 + 4 x 6-2.

6. O quadro fica assim:

Decimal Binário Octal Hexadecimal

89 1011001 131 59 226 11100010 342 E2 369 101110001 561 171 503 111110111 767 1F7 1.087 10000111111 2077 43F 64.202 1111101011001010 175312 FACA 65.535 1111111111111111 177777 FFFF 46 101110 56 2E 256 100000000 400 100 7. Respostas

a) b; o menor é 0 (zero) e o maior dígito b-1.

b) bm = 100 ... 0 b (note que esta igualdade é válida para qualquer base)

8. 1FACC; 1FACE; 1FAD0; 1FAD2; 1FAD4; 1FAD6; 1FAD8; 1FADA; 1FADC;1FADE;1FAE0

(18)

– Adição e Subtração com Números Binários

A aritmética binária é análoga à aritmética decimal, apenas levando-se em conta que só há dois algarismos disponíveis: 0 (zero) e 1 (um) em vez de dez como no sistema decimal ao qual estamos acostumados.

Sabemos que sabemos somar e subtrair no sistema decimal, mas não custa nada ‘dar uma olhadinha’ nesses processos. Vamos lá, não se envergonhe nem pule esta parte do aprendizado... os conceitos daqui serão utilizados no sistema binário.

Então... qual é a soma1 dos números 483 e 639 ambos do sistema decimal? É claro que ‘todo mundo’ sabe que a soma é 1.122... Mas diga-me: como você

encontrou esse valor? Descreva o processo... Parece fácil mas existem alguns segredos que iremos desvendar juntos!

Veja bem: 3 + 9 = 12, estas doze unidades permitem a formação de um grupo de 10 unidades sobrando 2 delas (recorde-se que estamos no sistema decimal); esse grupo

contendo 10 unidades dão formação a uma unidade imediatamente maior (dezenas) que será adicionada ao resultado de 8 + 3 e, novamente, obtemos o valor 12 que possibilita um

agrupamento de 10 dessas novas unidades, sobrando, é claro, 2 delas. Essa unidade de ordem imediatamente maior (centenas) será acrescida ao resultado de 4 + 6 fornecendo o resultado 11 e, outra vez, podemos criar um agrupamento de 10 dessas unidades sobrando 1 delas.

Todo esse procedimento se encontra ilustrado abaixo. Procure entender todo o processo lembrando, volto a repetir, que estamos operando no sistema decimal onde os agrupamentos são feitos com 10 unidades.

1 1 1

4 8 3 + 6 3 9 1 1 2 2

Cuidado, o Ministério da Saúde adverte: "Pular esta parte ou não entender o procedimento descrito faz mal ao aprendizado"!

O procedimento da subtração é semelhante, existindo agora a figura do empréstimo em vez do

vai 1 ou transporte como também é conhecido. Para mostrar toda a mecânica do processo

consideremos a seguinte subtração a ser feita no sistema decimal: 463 –178.

1

Resultado da adição

(19)

Tecnologia de Computadores Página:19/25 ‘Tá na cara’ que o resultado (diferença) é 285 o qual pode ser obtido usando uma sistemática bastante interessante. Senão vejamos.

Como de 3 não podemos tirar 8, pedimos emprestada 1 unidade ao ‘vizinho’ da esquerda (ordem das dezenas), ficando ele com 5 unidades; a unidade ‘importada’ equivale a 10 das atuais unidades de modo que passamos a ter o total 13 (10 + 3) dessas unidades das quais podemos 'tranqüilamente’ retirar 8 unidades, sobrando 5 como resultado. A próxima tarefa é retirar 7 unidades de 5... Mas como isso será possível?

Ora, vamos pedir emprestada uma unidade ao outro ‘vizinho’ da esquerda o qual, depois do empréstimo, ficará com 3 já que ele tinha 4 elementos desse tipo (ordem dos milhares); como essa unidade é ‘especial’, ela se transforma em 10 das nossas atuais que, juntamente com as 5 que temos, fornece o total de 15; deste montante retiramos as 7 e ficamos ainda com 8. Finalmente, na última posição existem 3 elementos dos quais retiraremos 1, sobrando 2. Assim 463 – 178 = 285.

Todo o processo descrito encontra-se resumido logo abaixo. Acompanhe todo o desenvolvimento! 15 3 5 13 4 6 3 - 1 7 8 2 8 5

Percebeu como se faz a subtração? É claro que com a prática agilizamos alguns processos descritos... mas a essência continua a mesma!

2.6.1 - Adição binária

A adição de números binários é análoga à de números decimais onde, neste último caso, utilizamos os termos vai um, vão dois etc.2

(a esse dígito que vai denominamos transporte). Devemos levar em consideração na adição binária que só há dois algarismos disponíveis (0 e 1), também existindo o transporte, que também só poderá ser 0 ou 1 - em computação e circuitos digitais, o transporte geralmente é chamado de carry (lê-se “queuri”).

Sem grande esforço mental chegamos à tabuada apresentada no Quadro 1 que traduz a adição dos dois dígitos binários a e b. Repare: apenas quatro, eu disse QUATRO, possibilidades... muito mais simples que a tabuada decimal com suas cem possibilidades! Uma verdadeira e completa sala de tortura para os iniciáticos em aritmética!

2

(20)

Você só não entendeu a última linha da tabuada? Repare 1 + 1 = 2 mas acontece que duas

unidades dão formação a uma unidade de ordem

imediatamente maior (que se constitui justamente o

transporte!), sobrando, evidentemente 0

unidades. 'Sacou'? Não existem mistérios! Basta

usar o bom senso!

Quadro 1

Então, vamos praticar um pouco!  11102 + 1002 = ?

1 1 0 0

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

Um pequeno ‘macete’ para você: o resultado sempre será 1 se na respectiva coluna existir uma quantidade impar de bits uns (1) e a cada dois uns implica em transporte para a posição imediatamente mais à esquerda.

 101110B + 101011B = ? 1 0 1 1 1

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

Em hipótese alguma aceite pacificamente os resultados acima. Constate a sua veracidade!

Fique ‘malandro’: numa mesma adição podem ocorrer vários transportes mas o número de

transportes será igual ao número de pares de uns que você for adicionar.

2.6.2 - Subtração binária

A subtração de números binários pode ser feita de modo análogo à de números decimais, utilizando-se a regra do... empresta um (em inglês borrow, lê-se "borou"). Mas cuidado com essa regra: ela é muito sujeita a erros!

O Quadro 2 apresenta a tabuada da subtração binária da qual só vemos problema na segunda linha: como subtrair uma unidade de zero?

Fácil... ‘pega emprestado com o vizinho’ uma unidade (empréstimo = 1); essa unidade chega às nossas mãos ‘capitalizada’, valendo 2 das nossas, isso porque estamos no sistema binário.

a b a + b transporte 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 vai 1 ou transporte 11102 + 1002 = 100102 1011102 + 1010112 = 10110012 vai 1 ou transporte

(21)

Tecnologia de Computadores Página:21/25 Agora é ‘mole’ fazer 2 – 1 = 1.

a b a - b empréstimo 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 Quadro 2 Exemplos:  10102 - 1002 = ? 0 2 1 0 1 0 - 1 0 0 0 1 1 0  101110B - 11011B = ? 2 0 2 0 0 2 1 0 1 1 1 0 - 1 1 0 1 1 0 1 0 0 1 1

Você chegou a observar que o 1 em azul (1) da segunda coluna foi cedido para primeira coluna, transformando-se em duas unidades como previsto? Acontece que com isso a segunda coluna ficou zerada vendo-se obrigada a ‘pegar um empréstimo’ com a terceira coluna ficando esta também zerada mas não havendo necessidade de novo empréstimo já que não há o que subtrair na terceira coluna (o bit do minuendo nessa posição é 0).

2.7 - Teoria dos complementos

2.7.1 - Complemento a um

Conforme vimos, a regra do ‘empresta um’ é bastante complicada e bastante sujeita a erros. Em seu lugar é empregado o método do complemento que é realmente o utilizado por computadores e componentes digitais.

10102 - 1002 = 1102

empréstimos e subtotais

1011102 - 110112 = 100112

(22)

Contudo, antes disso, é necessário definir o que se entende por complemento a um de um dígito: é a diferença entre a base do digito menos uma unidade e o próprio digito. Os exemplos a seguir tentam esclarecer:

O complemento a um de...

 ...2 na base decimal é 7 (10 – 1 – 2)

 ...5 na base hexadecimal é A (16 – 1 – 5 = 10  A);  ...1 na base binária é 0 (2 – 1 – 1 = 0)

 ...0 no sistema binário é 1 (2 – 1 – 0 = 1)

Obter o complemento a 1 no sistema binário é muito fácil: basta trocar 0 por 1 e vice-versa, 1 por 0. Quer ver? O complemento a 1 do binário 10010001 é 01101110. E de 111101102?

Caso você tenha respondido 10012 você acertou em cheio!! Afinal de contas para que escrever

zeros à esquerda?

2.7.2 - Complemento a dois

Este complemento é o ‘quente’!

O complemento a 2 é definido como a diferença entre a base do sistema no qual está expresso o digito e o digito propriamente dito ou, se você preferir, é o complemento a 1 mais uma unidade. Os exemplos a seguir esclarecem:

O complemento a 2 de...

 ...2 na base decimal é 8 (10 – 2)

 ...5 na base hexadecimal é B (16 – 5 = 11  B);  ...1 na base binária é 1 (2 – 1 = 1)

 ...0 no sistema binário é 0 (2 – 0 = 0  o transporte é ignorado pois estamos utilizando apenas um dígito).

Determinemos o complemento a 2 de alguns números binários para fixar idéias:

 10010001  vimos a cima que o seu complemento a 1 é 01101110, adicionando uma unidade temos 01101111 que é a resposta procurada;

 11110110  conforme acima o complemento a 1 é 1001, adicionando uma unidade encontramos 1010 que é o complemento a 2;

 10001000  o complemento a 1 é 01110111; adicionando uma unidade encontramos para o complemento a 2 o valor 01111000 ou 1111000.

(23)

Tecnologia de Computadores Página:23/25 Caso não queiramos ‘esquentar mufa’, existe um pequeno macete: repetimos todos os bits do binário da direita para a esquerda até inclusive o primeiro significativo (1), a partir desse momento trocamos 0 por 1 e 1 por 0.

Para os três exemplos acima temos o apresentado abaixo onde os bits assinalados na cor azul

foram os repetidos segundo o estabelecido pelo 'macete' acima:  10010001  01101111 ou 1101111;

 11110110  00001010 ou 1010 - lembre-se que, segundo o 'macete', temos de repetir todos os bits até inclusive o primeiro significativo;

 10001000  01111000 ou 1111000.

Para outros sistemas o procedimento para o cálculo do complemento a 2 é análogo ao do binário conforme ilustram os exemplos a seguir:

O complemento a 2 de...

 ...20.344 na base decimal é 79.656 (note que 20.344 + 79.656 = 100.000 = 105

)  ...5438 é 2358 (observe que 5438 + 2358 = 10008 = 83)

 ...10AFH é EF51H pois 10AFH + EF51H = 10000H = 164

 ...100010002 é 11110002 (note que 100010002 + 11110002 = 1000000002 = 28)

Os quatro exemplos acima claramente mostram que numeral de uma certa base b (b  2, inteiro) adicionado ao seu complemento a 2 fornece como resultado a unidade seguida de tantos zeros quantos forem os dígitos do numeral o que, em última estância, corresponde a uma potência inteira da base b. Compare e comprove! Não deixe para depois.

Matematicamente 'falando' podemos escrever:

n

2N b

N  Eq. 1

onde:

N  é o numeral expresso na base b (b  2, inteiro); n  quantidade de dígitos do numeral e

2N  o complemento a 2 do numeral N

7.2.3 - Subtração por adição do complemento a 2

A idéia é substituir o subtraendo (número negativo) por um outro número que tal ao ser somado com o minuendo o resultado corresponde à diferença procurada. Essencialmente a

(24)

técnica consiste em substituir os números negativos por outros números sem sinal que desempenhem o mesmo papel. Parece 'coisa de doido'...

Pense nisto: se os sistemas computacionais utilizam unicamente dois símbolos como poderemos representar o sinal (-) dos números negativos?

A resposta é simples: utilizar o complemento a 2! Ou seja: um número negativo é representado pelo complemento a 2 nos sistemas computacionais digitais.

Para não perder de vista nossos propósitos vamos aplicar essa ‘nova’ teoria aos seguintes exemplos de subtração:

 10102 - 1002 = ?

1o passo: Determinamos o complemento a 2 do subtraendo (valor negativo), de modo que -0100 se transforma em 1100 utilizando a 'transformação' acima.

2o passo: A subtração se transforma na adição 10102 + 11002: ao minuendo é somado o

complemento a dois do subtraendo que, representa um número negativo. Assim:

1

1 0 1 0 + 1 1 0 0

1 0 1 1 0

 101110B - 11011B = ?

1o passo: O complemento 2 do subtraendo (valor negativo) é 100101 (seis bits tal qual o minuendo).

2o passo: Operar 101110B + 100101B cujo resultado, ignorando o carry, é 0100112 ou

100112.

Verifique que o resultados daqui ‘batem’ com os anteriormente calculados!! É impressionante mas funciona!

Mas atenção:

a) Ao calcular o complemento a 2 de um subtraendo3 devemos fazer com que ele tenha a mesma quantidade de bits que o minuendo; caso contrário, devemos completá-lo com zeros – não fazer isto provoca erro.

3

O que equivale a transformar um número negativo em um número desprovido do sinal menos (-).

abandonar

(25)

Tecnologia de Computadores Página:25/25 b) Caso o último bit do resultado seja 1 isto indica que o resultado (diferença no caso) é

negativo havendo necessidade de realizar o complemento a 2 para obter o resultado 'real' se necessário. É o caso, por exemplo da operação 3 – 7 que em binário fica 0011 – 0111 ou 0011 + 1001 que fornece o resultado 1100 (carry = 0) o qual equivale ao decimal –4 pois o complemento a 2 do binário 1100 é o binário 0100.

c) O carry, transporte final, só não é considerado para efeito didático, mas ele é essencial para permitir que o computador proceda ao desenvolvimento do programa possibilitando-o a realizar, ppossibilitando-or exemplpossibilitando-o, desvipossibilitando-os. Istpossibilitando-o, ppossibilitando-orém, fpossibilitando-oge apossibilitando-os prpossibilitando-opósitpossibilitando-os dpossibilitando-o mpossibilitando-omentpossibilitando-o.

Fique muito atento: Para saber se um dado número binário é positivo ou negativo

basta observar o bit mais significativo (LSb): se igual a 1 o número é negativo e seu valor (módulo) é calculado estabelecendo o complemento a dois desse número binário!

Vamos entender utilizando numerais de 8 bits:

 10001001  número negativo (o bit mais significativo é 1) cujo valor é dado pelo complemento a 2, o seja: -01110111 que convertido ao decimal é –119

 00110011  o número é positivo e seu equivalente no sistema decimal é 51

 10111111  o número é negativo (numeral iniciando por 1) de valor –65 no sistema decimal ou, -01000001 no sistema binário.

Referências

Documentos relacionados

Compreender o significado de palavras, de grupos de palavras, de frases curtas e

8 salas de aula para o 1º ciclo do ensino básico 2 salas de aulas para a educação pré-escolar 1 centro de recursos/biblioteca escolar 1 sala multiusos para actividades de

Como a profundidade média dos oceanos é de aproximadamente 3,8 mil metros e a profundidade da zona eufótica, em áreas oceânicas, situa-se, em geral, entre 150 e 200 m, o resultado

Explicar o ciclo litológico com base nos processos de génese e características dos vários tipos de rochas, selecionando exemplos que possamser observados em amostras de mão

Porém, se tomado em suas manifestações ou demonstrações (a posteriori) o termo Deus é a essência que move todas as outras coisas, inclusive as idéias. Deve-se, assim, por

As cianobactérias aquáticas foram às exceções quanto ao meio de cultura preferencial, pois também apresentaram crescimento em meio líquido ASM-1, assim como utilizado nos estudos

Com os resultados da pesquisa nota-se que o grande problema acontece no início do projeto, se a empresa desenvolvedora não terá custo adicional, então, ela

O conjunto das intervenções sublinhou a importância não só da divulgação e disponibilização da informação que, a vários níveis, existe sobre Timor, como da possibilidade