capítulo i – conceitos primários 1.1 – estrutura de um computador 1.2 – informações...

113
Capítulo I – Conceitos Capítulo I – Conceitos Primários Primários 1.1 – Estrutura de um computador 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um 1.2 – Informações manipuladas por um computador computador 1.3 – Evolução das linguagens de 1.3 – Evolução das linguagens de programação programação

Upload: internet

Post on 17-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Capítulo I – Conceitos Capítulo I – Conceitos PrimáriosPrimários

1.1 – Estrutura de um computador1.1 – Estrutura de um computador

1.2 – Informações manipuladas por um 1.2 – Informações manipuladas por um computadorcomputador

1.3 – Evolução das linguagens de 1.3 – Evolução das linguagens de programação programação

Page 2: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2 – Informações 1.2 – Informações Manipuladas por um Manipuladas por um

ComputadorComputador1.2.1 – Natureza das informações1.2.1 – Natureza das informações

Um computador é capaz de manipular Um computador é capaz de manipular NúmerosNúmeros TextosTextos SonsSons ImagensImagens Composições desses ingredientesComposições desses ingredientes

Page 3: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Molécula:Molécula:

MenorMenor porção de uma porção de uma substância purasubstância pura

Porção qualquerPorção qualquer de uma substância pura: de uma substância pura: conjunto de moléculasconjunto de moléculas

Bit:Bit:

MenorMenor unidade de unidade de informaçãoinformação em um em um computadorcomputador

Informação qualquerInformação qualquer na memória de um na memória de um computador: computador: conjunto de bitsconjunto de bits

Page 4: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Bit (biBit (bi-nary digi--nary digi-t): t): unidade de unidade de armazenamento que pode assumir um de armazenamento que pode assumir um de apenas dois valores possíveis: o apenas dois valores possíveis: o 0 (zero)0 (zero) e o e o 1 1 (um)(um)

Uma Uma informaçãoinformação qualquer na memória de um qualquer na memória de um computador é uma composição de computador é uma composição de 0’s0’s e e 1’s1’s

NúmerosNúmeros em um computador são guardados em um computador são guardados no no sistema binário de numeraçãosistema binário de numeração, em vez do , em vez do sistema decimalsistema decimal, usado comumente pelos , usado comumente pelos seres humanosseres humanos

Page 5: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Dispositivos físicos para armazenar um Dispositivos físicos para armazenar um bit: bit: devem ser capazes de estar em apenas um devem ser capazes de estar em apenas um de dois estados possíveis:de dois estados possíveis:

O primeiro representando o valor O primeiro representando o valor 0 (zero)0 (zero) O segundo representando o valor O segundo representando o valor 1 (um)1 (um)

Exemplo:Exemplo: recipiente capaz de conter apenas recipiente capaz de conter apenas uma uma gotagota de líquido de líquido

Se ele estiver Se ele estiver vaziovazio: : estado 0estado 0 Se, com um conta-gotas, for-lhe Se, com um conta-gotas, for-lhe introduzida introduzida

uma gotauma gota, ele passa para o , ele passa para o estado 1estado 1

Page 6: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Há Há três diferentes meios físicos três diferentes meios físicos para para armazenar um armazenar um bitbit em um computador: em um computador:

Meio eletrônicoMeio eletrônico – usado principalmente – usado principalmente dentro do dentro do processadorprocessador e da e da memória memória principalprincipal, mas também em , mas também em pen-drivespen-drives

Meio magnéticoMeio magnético – usado em – usado em HD’sHD’s e e fitas fitas magnéticasmagnéticas

Meio ópticoMeio óptico – usado em – usado em CD’sCD’s e e DVD’sDVD’s

Page 7: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Meio eletrônico: Meio eletrônico: dispositivo de nome dispositivo de nome flip-flopflip-flop

v

Três valores de tensão:

Zero: desligado

Baixo: estado 0

Alto: estado 1

Na realidade, um flip-flop tem outros terminais não abordados em CES-10

Page 8: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Meio magnético: Meio magnético: trilhas de trilhas de micro-magnetosmicro-magnetos

Cada magneto é magnetizado em um de Cada magneto é magnetizado em um de doisdois possíveis possíveis sentidossentidos

Observar dois Observar dois magnetos adjacentesmagnetos adjacentes: se : se iguais, o bit é iguais, o bit é 00, se diferentes, o bit é , se diferentes, o bit é 11

Trilha magnética de bits

Page 9: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Meio magnético: Meio magnético: trilhas de trilhas de micro-magnetosmicro-magnetos

Na figura, os bits armazenados são Na figura, os bits armazenados são 110100110100

A leitura da trilha é feita por uma cabeça A leitura da trilha é feita por uma cabeça detectora de detectora de alteração do sentidoalteração do sentido de de magnetização dos magnetosmagnetização dos magnetos

Trilha magnética de bits

Page 10: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Meio óptico: Meio óptico: trilhas numa trilhas numa superfície superfície espelhadaespelhada

Cada trilha contém sequências de minúsculos Cada trilha contém sequências de minúsculos picospicos e e valesvales

BitBit 1:1: alteração de nível; alteração de nível; Bit 0: Bit 0: manutenção manutenção de nívelde nível

Trilha de um dispositivo óptico digital

Page 11: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Meio óptico: Meio óptico: trilhas numa trilhas numa superfície superfície espelhadaespelhada

A leitura da trilha é feita pela emissão de A leitura da trilha é feita pela emissão de raio raio laserlaser sobre ela sobre ela

O O ânguloângulo de reflexão do raio é de reflexão do raio é diferente para diferente para picos e valespicos e vales; isso é captado pelo receptor do ; isso é captado pelo receptor do reflexoreflexo

Trilha de um dispositivo óptico digital

Page 12: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Palavra:Palavra:

Na RAM, na cache e nos registradores da CPU, Na RAM, na cache e nos registradores da CPU, é uma é uma concatenação de flip-flopsconcatenação de flip-flops

Num instante qualquer da execução, ela pode Num instante qualquer da execução, ela pode estar guardando um conjunto qualquer de estar guardando um conjunto qualquer de 0’s0’s e e 1’s1’s

0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1Palavra de 16 bits

Page 13: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Byte: Byte: conjunto de 8 bitsconjunto de 8 bits

Importância: Importância: cada cada caracterecaractere que compõe um que compõe um texto é armazenado em texto é armazenado em um byteum byte

Caracteres: Caracteres: letras, dígitos decimais, letras, dígitos decimais, operadores aritméticos, pontuação, etc.operadores aritméticos, pontuação, etc.

Exemplo:Exemplo: o byte acima representa a letra o byte acima representa a letra ‘s’ ‘s’ (minúscula)(minúscula)

0 1 1 1 0 0 1 1

Page 14: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Byte: Byte: conjunto de 8 bitsconjunto de 8 bits

O O tamanho da palavratamanho da palavra de um computador de um computador pode ser expresso em número de pode ser expresso em número de bitsbits ou de ou de bytesbytes

A A palavrapalavra de um módulo de memória pode ser de um módulo de memória pode ser um conjunto de um conjunto de 1, 2, 4, 8 ou 16 bytes 1, 2, 4, 8 ou 16 bytes adjacentesadjacentes desse módulo desse módulo

0 1 1 1 0 0 1 1

Page 15: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Os computadores atuais podem Os computadores atuais podem variar o variar o tamanhotamanho de suas palavras mediante de suas palavras mediante programaçãoprogramação

Ora ele pode enxergá-las como tendo apenas Ora ele pode enxergá-las como tendo apenas 1 1 bytebyte, ora como tendo, ora como tendo 2 2,, 4 4,, 8 8 ouou 16 bytes 16 bytes

Então o sistema de Então o sistema de endereçamentoendereçamento de seus de seus módulos de memória módulos de memória pode variar pode variar mediante mediante programaçãoprogramação

Page 16: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo:Exemplo: RAM de 2 megabytes RAM de 2 megabytes

Vista como tendo 2 mega palavras de 1 byte:

0000 1000

0010 1011

0111 0100

1011 0101

0011 1111

0000 0010

0110 1000

0100 1110

1111 1111

1000 1111

0

1

2

3

4

5

6

7

2.097.150

2.097.151

ConteúdosEndereços

Vista como tendo 1 mega palavras de 2 bytes:

0000 10000010 1011

0111 01001011 0101

0011 11110000 0010

0110 10000100 1110

1111 11111000 1111

0

1

2

3

1.048.575

ConteúdosEndereços

Page 17: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Tabela dos prefixos kilo, mega, giga, etc.:Tabela dos prefixos kilo, mega, giga, etc.:

Page 18: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Observação:Observação:

Sabe-se que toda informação na memória é um Sabe-se que toda informação na memória é um conjunto de conjunto de 0’s 0’s e e 1’s1’s

A priori, não se sabe se o A priori, não se sabe se o conteúdoconteúdo de um de um trecho de memória é um conjunto de trecho de memória é um conjunto de númerosnúmeros, , ou um ou um textotexto, ou uma , ou uma imagemimagem, ou um , ou um somsom digitalizadodigitalizado

O O programaprograma que vai trabalhar com esse trecho que vai trabalhar com esse trecho deve estar deve estar preparadopreparado para enxergá-lo da para enxergá-lo da maneira corretamaneira correta

Vê-se que muita coisa em Vê-se que muita coisa em computaçãocomputação é uma é uma questão de questão de programaçãoprogramação

Page 19: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2.2 – Sistemas de numeração e 1.2.2 – Sistemas de numeração e mudança de basemudança de base

Desde a antiguidade, os seres humanos Desde a antiguidade, os seres humanos utilizam o utilizam o sistema decimalsistema decimal de numeração de numeração (base 10)(base 10)

AlfabetoAlfabeto do sistema decimal: do sistema decimal:

1010 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Valores numéricos Valores numéricos acima de 9acima de 9, utilizam , utilizam mais mais de um dígito decimalde um dígito decimal (Exemplos: 15, 26, 367, (Exemplos: 15, 26, 367, 289170)289170)

Page 20: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Num computador, todas as informações são Num computador, todas as informações são sequências de sequências de 0’s0’s e e 1’s1’s

Nos computadores então, nada mais natural do Nos computadores então, nada mais natural do que manipular valores numéricos no que manipular valores numéricos no sistema sistema bináriobinário de numeração de numeração (base 2)(base 2)

AlfabetoAlfabeto do sistema binário: do sistema binário:

22 = {0, 1} = {0, 1}

Valores numéricos Valores numéricos acima de 1acima de 1, utilizam , utilizam mais mais de um dígito bináriode um dígito binário (Exemplos: 10, 101, (Exemplos: 10, 101, 1111, 100010)1111, 100010)

Page 21: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Qualquer número natural pode ser Qualquer número natural pode ser basebase de um de um sistema de numeração:sistema de numeração:

EquivalênciaEquivalência entre os sistemas: entre os sistemas:

(29)(29)1010 = (11101) = (11101)22 =(1002) =(1002)33 =(131) =(131)44 =(35) =(35)88 =(1D)=(1D)1616

Em Computação usa-se muito os sistemas Em Computação usa-se muito os sistemas bináriobinário, , decimaldecimal, , octaloctal e e hexadecimalhexadecimal

Page 22: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Conversão de base:Conversão de base:

Nesta disciplina, para se converter um número Nesta disciplina, para se converter um número de uma base de uma base bb11 para outra para outra bb22::

1.1. Converte-se de Converte-se de bb11 para a para a base 10base 10

2.2. Converte-se da Converte-se da base 10base 10 para para bb22

Assim evita-se fazer cálculos fora da base 10

Page 23: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Conversão de base para números inteiros:Conversão de base para números inteiros:

Seja o seguinte número inteiro Seja o seguinte número inteiro NN escrito numa escrito numa base bbase b qualquer: qualquer:

(N)(N)bb = (A = (Ann A An-1n-1 A An-2n-2 ...... A ...... A22 A A11 A A00))bb

AAnn,, A An-1n-1,, A An-2n-2,, ............ A A22,, A A11 ee A A00 são dígitos do são dígitos do alfabeto do sistema de numeração de alfabeto do sistema de numeração de base bbase b..

A conversão da base A conversão da base bb para a base para a base 1010 utiliza o utiliza o seguinte polinômio:seguinte polinômio:

(N)(N)1010 = A = Ann b bnn + A + An-1n-1 b bn-1n-1 + A + An-2n-2 b bn-2n-2 + ...... + ...... + A+ A22 b b22 + A + A11 bb11 + A + A00 b b00

Page 24: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos:Exemplos:

1.1.(11100101)(11100101)22 = =

== 1 * 21 * 277 + 1 * 2 + 1 * 266 + 1 * 2 + 1 * 255 + 0 * 2 + 0 * 244 + 0 * 2 + 0 * 233 + 1 * + 1 * 2222 + 0 * 2 + 0 * 211 + 1* 2 + 1* 200

= 2= 277 + 2 + 266 + 2 + 255 + 2 + 222 + 2 + 200

= (229)= (229)1010

2.2.(271)(271)88

= 2 * 8= 2 * 822 + 7 * 8 + 7 * 811 + 1* 8 + 1* 800

= (185)= (185)1010

3.3.(2AB3)(2AB3)1616

= 2 * 16= 2 * 1633 + 10 * 16 + 10 * 1622 + 11 * 16 + 11 * 1611 + 3* 16 + 3* 1600

= (10931)= (10931)1010

Page 25: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Na conversão da base Na conversão da base 1010 para a base para a base bb, divide-, divide-se sucessivamente o número na base se sucessivamente o número na base 1010 por por bb, , colhendo-se os colhendo-se os restorestos e s e invertendoinvertendo-se a -se a ordem dos mesmosordem dos mesmos

Exemplos:Exemplos:

(25)10 para a base 2

(93)10 para a base 8

(2653)10 para a base 16

(25)10 = (11001)2

(93)10 = (135)8

(2653)10 = (A5D)16

Page 26: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Conversão de base para números reais:Conversão de base para números reais:

Converte-se Converte-se separadamenteseparadamente a parte a parte inteirainteira da parte da parte fracionáriafracionária

A conversão da A conversão da parte inteira parte inteira acaba de ser acaba de ser vistavista

Será vista agora a conversão da Será vista agora a conversão da parte parte fracionáriafracionária

Page 27: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Conversão de base para números reais:Conversão de base para números reais:

Seja o seguinte número fracionário Seja o seguinte número fracionário NN escrito escrito numa numa base bbase b qualquer: qualquer:

(N)(N)bb = (0.A = (0.A-1-1 A A-2-2 A A-3-3 ...... A ...... A-n+2-n+2 A A-n+1-n+1 A A-n-n))bb

AA-1-1,, A A-2-2,, A A-3-3,, ............ A A-n+2-n+2,, A A-n+1-n+1 ee A A-n-n são dígitos do são dígitos do alfabeto do sistema de numeração de alfabeto do sistema de numeração de base bbase b..

Para números fracionários, a conversão da Para números fracionários, a conversão da base base bb para a base para a base 1010 utiliza o seguinte utiliza o seguinte polinômio:polinômio:

(N)(N)1010 = A = A-1-1bb-1-1 + A + A-2-2bb-2-2 + A + A-3-3bb-3-3 + …. + …. + A+ A-n+2-n+2bb-n+2-n+2 + A + A-n+1-n+1bb--

n+1n+1 + A + A-n-nbb-n-n

Page 28: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos:Exemplos:

1.1.(0.1011)(0.1011)22

= 1 * 2= 1 * 2-1-1 + 1 * 2 + 1 * 2-3-3 + 1 * 2 + 1 * 2-4-4

= (0.6875)= (0.6875)1010

2.2.(0.307)(0.307)88

= 3 * 8= 3 * 8-1-1 + 7 * 8 + 7 * 8-3-3

= (0.388671875)= (0.388671875)1010

3.3.(0.2B)(0.2B)1616

= 2 * 16= 2 * 16-1-1 + 11 * 16 + 11 * 16-2-2

= (0.16796875)= (0.16796875)1010

Page 29: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: converter (0.7265625)10 para a base 8

8 * 0.7265625 = 5 + 0.8125

8 * 0.8125 = 6 + 0.5

8 * 0.5 = 4 + 0.0

(0.7265625)10 = (0.564)8

Conversão de um número Conversão de um número fracionário da base 10 fracionário da base 10 para a base b:para a base b:

1.1.Multiplicar o número na base Multiplicar o número na base 10 por b, separando a parte 10 por b, separando a parte inteira do resultadointeira do resultado

2.2.Aplicar o passo 1 à parte Aplicar o passo 1 à parte fracionária restante, fracionária restante, repetidamente, até obter zero repetidamente, até obter zero para a nova parte fracionária para a nova parte fracionária

3.3.Caso nunca se chegue ao Caso nunca se chegue ao zero, pode ser uma dízima zero, pode ser uma dízima periódicaperiódica

4.4.As partes inteiras obtidas são As partes inteiras obtidas são os dígitos da conversãoos dígitos da conversão

Page 30: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: converter (0.169189453125)Exemplo: converter (0.169189453125)1010 para a base 16para a base 16

16 * 0.16918945312516 * 0.169189453125 = = 22 + 0.70703125+ 0.70703125

16 * 0.7070312516 * 0.70703125 = = 1111 + 0.3125+ 0.3125

16 * 0.312516 * 0.3125 = = 55 + 0.0+ 0.0

(0.169189453125)(0.169189453125)1010 = (0.2B5) = (0.2B5)1616

Page 31: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: converter (0.3)Exemplo: converter (0.3)1010 para a base 2 para a base 2

2 * 0.32 * 0.3 = = 00 + 0.6 + 0.6

2 * 0.62 * 0.6 = = 11 + 0.2 + 0.2

2 * 0.22 * 0.2 = = 00 + 0.4 + 0.4

2 * 0.42 * 0.4 = = 00 + 0.8 + 0.8

2 * 0.82 * 0.8 = = 11 + 0.6 + 0.6

2 * 0.62 * 0.6 = = 11 + 0.2 + 0.2

2 * 0.22 * 0.2 = = 00 + 0.4 + 0.4

2 * 0.42 * 0.4 = = 00 + 0.8 + 0.8

2 * 0.82 * 0.8 = = 11 + 0.6 + 0.6

2 * 0.62 * 0.6 = = 11 + 0.2 + 0.2

  

(0.3)(0.3)1010 = (0,0 1001 1001 1… ) = (0,0 1001 1001 1… )22

Dízima periódica

Um mesmo número pode ser expresso por dízimas periódicas em algumas bases e em outras não

A racionalidade de um número independe da base

Page 32: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Conversão entre sistema binário e sistemas Conversão entre sistema binário e sistemas de bases potências de 2:de bases potências de 2:

A A base 10base 10 não será usada como não será usada como intermediáriaintermediária

Cada grupo de Cada grupo de n dígitos n dígitos de um número escrito de um número escrito numa numa base bbase b qualquer corresponde a qualquer corresponde a um um único dígitoúnico dígito do mesmo número escrito na do mesmo número escrito na base bbase bnn

Page 33: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: base 2 para base 16Exemplo: base 2 para base 16

Exemplo: base 8 para base 2Exemplo: base 8 para base 2

Page 34: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exercícios 1.2.2:Exercícios 1.2.2:

Efetuar as seguintes mudanças de base:Efetuar as seguintes mudanças de base:

1.1.13A5C da base 16 para a base 513A5C da base 16 para a base 5

2.2.1001101101 da base 2 para a base 10 1001101101 da base 2 para a base 10

3.3.B12F da base 16 para a base 10B12F da base 16 para a base 10

4.4.184 da base 10 para a base 2184 da base 10 para a base 2

5.5.1632 da base 10 para a base 81632 da base 10 para a base 8

6.6.23.6 da base 8 para a base 323.6 da base 8 para a base 3

7.7.11010111.01011 da base 2 para a base 8, sem 11010111.01011 da base 2 para a base 8, sem usar base intermediáriausar base intermediária

8.8.42.B6 da base 16 para a base 2 sem usar base 42.B6 da base 16 para a base 2 sem usar base intermediária intermediária

Page 35: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2.3 – Aritmética binária e operações 1.2.3 – Aritmética binária e operações lógicaslógicas

Circuitos aritméticos Circuitos aritméticos baseiam-se nas baseiam-se nas operações aritméticas no operações aritméticas no sistema bináriosistema binário

Exemplo:Exemplo: soma, subtração e multiplicação de soma, subtração e multiplicação de números binários: a seguirnúmeros binários: a seguir

Page 36: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Importante:

carry e borrow

Também há carry na multiplicação

Page 37: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: seja a soma

Os cálculos vão da direita para a esquerda

Primeiro cálculo: dois bits de entrada

Produz-se dois bits:soma e carry

Page 38: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Segundo cálculo: três bits de entrada (carry do cálculo anterior)

Também produz-se dois bits:soma e carry

Page 39: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Tabuada da aritmética binária:Tabuada da aritmética binária:

Page 40: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Valores e operações lógicas:Valores e operações lógicas:

O resultado do teste de uma O resultado do teste de uma condiçãocondição é um de é um de apenas dois valores possíveis:apenas dois valores possíveis:

Verdade Verdade ouou Falso Falso

Estes valores são denominados Estes valores são denominados valores lógicosvalores lógicos

Valores lógicosValores lógicos não são números, mas podem não são números, mas podem ser convenientemente mapeados nos ser convenientemente mapeados nos dígitos dígitos bináriosbinários::

1 = Verdade 1 = Verdade ee 0 = Falso 0 = Falso

Page 41: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos: Exemplos: nas instruçõesnas instruções

Se Se não há cartões na entradanão há cartões na entrada,, executar executar Esc Esc 99;;

Se Se Esc 22 = 0Esc 22 = 0,, executar executar Esc 12Esc 12;; Se Se Esc 24 > Esc 21Esc 24 > Esc 21,, executar executar Esc 10Esc 10;;

Não há cartões na entrada Não há cartões na entrada

Esc 22 = 0Esc 22 = 0

Esc 24 > Esc 21Esc 24 > Esc 21

São condições a serem testadas

Seus valores só podem ser verdade ou falso

Page 42: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Operadores relacionais: <, ≤, >, ≥, =, ≠Operadores relacionais: <, ≤, >, ≥, =, ≠

Comparam duas grandezasComparam duas grandezas

Seu resultado é um valor lógicoSeu resultado é um valor lógico

Operadores lógicos: and, or, not, exorOperadores lógicos: and, or, not, exor

Seus operandos são grandezas lógicasSeus operandos são grandezas lógicas

Seu resultado é um valor lógicoSeu resultado é um valor lógico

Page 43: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos com operadores lógicos:Exemplos com operadores lógicos:

Seja a frase:Seja a frase:

Se (meu carro tem combustível) e (sua mecânica Se (meu carro tem combustível) e (sua mecânica está em bom estado), então (saio com ele)está em bom estado), então (saio com ele)

A ação A ação (saio com ele) (saio com ele) só será realizada se só será realizada se ambas as condiçõesambas as condições

(meu carro tem combustível) (meu carro tem combustível) ee

(sua mecânica está em bom estado)(sua mecânica está em bom estado)

forem verdadeforem verdade

A palavra “e” é um operador lógico

Seu resultado é verdade, se ambos os operandos forem verdade

Page 44: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos com operadores lógicos:Exemplos com operadores lógicos:

Seja a frase:Seja a frase:

Se (meu carro tem combustível) e (sua mecânica Se (meu carro tem combustível) e (sua mecânica está em bom estado), então (saio com ele)está em bom estado), então (saio com ele)

A ação A ação (saio com ele) (saio com ele) só será realizada se só será realizada se ambas as condiçõesambas as condições

(meu carro tem combustível) (meu carro tem combustível) ee

(sua mecânica está em bom estado)(sua mecânica está em bom estado)

forem verdadeforem verdade

Em CES-10, no lugar da palavra

“e” será usado

“and” ou então o

símbolo “&&”

Page 45: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos com operadores lógicos:Exemplos com operadores lógicos:

Seja a frase:Seja a frase:

Se (meu carro está em ordem) ou (tenho carona) Se (meu carro está em ordem) ou (tenho carona) então (vou ao teatro)então (vou ao teatro)

A ação A ação (vou ao teatro) (vou ao teatro) será realizada se pelo será realizada se pelo menos uma das condiçõesmenos uma das condições

(meu carro está em ordem) (meu carro está em ordem) ouou

(tenho carona)(tenho carona)

for verdadefor verdade

A palavra “ou” é um operador lógico

Seu resultado é verdade, se pelo menos um dos operandos for verdade

Page 46: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos com operadores lógicos:Exemplos com operadores lógicos:

Seja a frase:Seja a frase:

Se (meu carro está em ordem) ou (tenho carona) Se (meu carro está em ordem) ou (tenho carona) então (vou ao teatro)então (vou ao teatro)

A ação A ação (vou ao teatro) (vou ao teatro) será realizada se pelo será realizada se pelo menos uma das condiçõesmenos uma das condições

(meu carro está em ordem) (meu carro está em ordem) ouou

(tenho carona)(tenho carona)

for verdadefor verdade

Em CES-10, no lugar da palavra

“ou” será usado

“or” ou então o

símbolo “||”

Page 47: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos com operadores lógicos:Exemplos com operadores lógicos:

Seja a frase:Seja a frase:

Se não (estou gripado) então (vou ao clube nadar)Se não (estou gripado) então (vou ao clube nadar)

A ação A ação (vou ao clube nadar) (vou ao clube nadar) será realizada se será realizada se a condiçãoa condição

(estou gripado)(estou gripado)

for falsafor falsa

A palavra “não” é um operador lógico

Seu resultado é verdade, se seu operando for falso

Page 48: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos com operadores lógicos:Exemplos com operadores lógicos:

Seja a frase:Seja a frase:

Se não (estou gripado) então (vou ao clube nadar)Se não (estou gripado) então (vou ao clube nadar)

A ação A ação (vou ao clube nadar) (vou ao clube nadar) será realizada se será realizada se a condiçãoa condição

(estou gripado)(estou gripado)

for falsafor falsa

Em CES-10, no lugar da palavra

“não” será usado

“not” ou então o

símbolo “!”

Page 49: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Outro operador lógico - exor:Outro operador lógico - exor:

exor: exor: exclusive-or (ou-exclusivo)exclusive-or (ou-exclusivo)

Operador lógico de dois operandosOperador lógico de dois operandos

O resultado só será O resultado só será verdadeverdade se os operandos se os operandos forem forem diferentes entre sidiferentes entre si

Page 50: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Tabuada dos operadores lógicos:Tabuada dos operadores lógicos:

Pela Álgebra Booleana, Pela Álgebra Booleana, exor exor pode ser expressa pode ser expressa em termos de em termos de andand, , or or e e notnot::

a exor b = ((not a) and b) or (a and (not b))a exor b = ((not a) and b) or (a and (not b))

Page 51: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Tabuada dos operadores lógicos:Tabuada dos operadores lógicos:

Cada coluna desta tabela é a Cada coluna desta tabela é a tabela-verdadetabela-verdade de um operadorde um operador

Page 52: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Circuitos aritméticos digitais:Circuitos aritméticos digitais:

No mercado, existem componentes para os No mercado, existem componentes para os operadores operadores andand, , oror e e notnot::

Esses componentes são Esses componentes são portas lógicas portas lógicas para para esses operadoresesses operadores

As portas As portas and and e e oror podem ter mais de duas podem ter mais de duas entradasentradas

Page 53: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Circuitos aritméticos digitais:Circuitos aritméticos digitais:

Equivalência entre tabelas-verdades Equivalência entre tabelas-verdades aritméticas e lógicas:aritméticas e lógicas:

Soma = Subtração = exor Soma = Subtração = exor

Carry = Produto = andCarry = Produto = and

Page 54: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Assim:Assim:

soma = a + b = a exor b = ((not a) and b) or (a soma = a + b = a exor b = ((not a) and b) or (a

and (not b))and (not b)) carry = a and bcarry = a and b

Page 55: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Circuito somador de dois números de um bit:Circuito somador de dois números de um bit:

Abreviadamente:Abreviadamente:

soma = a + b = a exor b = ((not a) and b) or (a and (not b)) carry = a and b

Page 56: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Somador de dois números com dois ou mais Somador de dois números com dois ou mais bits:bits:

Pode ser a Pode ser a concatenaçãoconcatenação de vários somadores de vários somadores de de três três bits cada:bits cada:

soma = a exor b exor c-inc-out = (a and b) or (a and c-in) or (b and c-in))

Page 57: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: somador de dois números de 4 bits:Exemplo: somador de dois números de 4 bits:

Seu nome é Seu nome é somador com propagação de somador com propagação de carrycarry

Page 58: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Caráter sequencial:Caráter sequencial: cada somador de bit cada somador de bit precisa do carry do somador da direitaprecisa do carry do somador da direita

Há somadores que Há somadores que dispensamdispensam a a sequencialidade: são mais sofisticados e mais sequencialidade: são mais sofisticados e mais rápidosrápidos

Page 59: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2.4 – Representação de números 1.2.4 – Representação de números inteiros no computadorinteiros no computador

Assuntos relacionados:Assuntos relacionados:

Regras de Regras de conversãoconversão para o para o sistema bináriosistema binário de numeração (vistas anteriormente)de numeração (vistas anteriormente)

Espaço em bitsEspaço em bits ou bytes para guardar números: ou bytes para guardar números: varia com cada varia com cada hardwarehardware e com cada e com cada softwaresoftware que os manipulaque os manipula

Tratamento de Tratamento de números negativosnúmeros negativos: para : para inteiros, armazenar o inteiros, armazenar o sinalsinal e o e o módulomódulo (visto a (visto a seguir)seguir)

Page 60: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Sejam usados Sejam usados n bitsn bits para representar números para representar números inteirosinteiros

Representação do sinal:Representação do sinal:

Usar o bit mais à esquerda como Usar o bit mais à esquerda como bit-sinalbit-sinal; bit ; bit 11 para os números negativos e bit para os números negativos e bit 00 para os para os outros númerosoutros números

Os outros bits devem guardar informações Os outros bits devem guardar informações sobre o sobre o módulomódulo

Page 61: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Representação do módulo por sinal + Representação do módulo por sinal + magnitude:magnitude:

Idéia imediatista: armazenar o Idéia imediatista: armazenar o valor do módulovalor do módulo em binário (fácil interpretação)em binário (fácil interpretação)

Dado o Dado o conteúdoconteúdo de um espaço em bits na de um espaço em bits na memória, onde está guardado um memória, onde está guardado um número número inteirointeiro, dizer qual é esse número, na base 10:, dizer qual é esse número, na base 10:

Examina-se o Examina-se o bit mais à esquerda bit mais à esquerda para para saber o saber o sinalsinal

Converte-seConverte-se os outros bits para o sistema os outros bits para o sistema decimal para saber o decimal para saber o módulomódulo

Page 62: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: Exemplo: seja um sistema que utiliza seja um sistema que utiliza 5 bits5 bits para armazenar inteiros; 1 para o sinal e 4 para armazenar inteiros; 1 para o sinal e 4 para o módulopara o módulo

Quais os números armazenados pelos Quais os números armazenados pelos conteúdos conteúdos 01110 01110 e e 1011010110??

01110: 01110: sinal não negativo; módulo (1110)sinal não negativo; módulo (1110)22 = = (14)(14)1010

01110 01110 corresponde a corresponde a +(14)+(14)1010

10110: 10110: sinal negativo; módulo (0110)sinal negativo; módulo (0110)22 = (6) = (6)1010

10110 10110 corresponde a corresponde a -(6)-(6)1010

Page 63: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Inconvenientes da representação sinal + Inconvenientes da representação sinal + magnitude:magnitude:

1.1.Possui dois zeros: Possui dois zeros: 0000000000 e e 1000010000

Complica o esquema dos circuitos aritméticosComplica o esquema dos circuitos aritméticos

2.2.Nos circuitos aritméticos, o Nos circuitos aritméticos, o bit-sinalbit-sinal deve ter deve ter tratamento diferenciadotratamento diferenciado dos demais bits dos demais bits

Circuitos aritméticos mais Circuitos aritméticos mais caroscaros e mais e mais lentoslentos

Essa representação Essa representação nãonão é mais é mais utilizadautilizada

Page 64: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: erro pelo tratamento não Exemplo: erro pelo tratamento não diferenciado do bit-sinaldiferenciado do bit-sinal

Seja a soma Seja a soma 10 + (-5)10 + (-5), usando 5 bits para , usando 5 bits para inteirosinteiros

(10)(10)10 10 → 01010; (-5)→ 01010; (-5)10 10 → 10101;→ 10101;

0 1 0 1 00 1 0 1 0

++

1 0 1 0 11 0 1 0 1

1 1 1 1 1 = -15 1 1 1 1 1 = -15 → Erro→ Erro

Page 65: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Representação do módulo em complemento Representação do módulo em complemento de 2:de 2:

Utiliza o bit-sinal da Utiliza o bit-sinal da mesma maneiramesma maneira

Outros bits:Outros bits:

Para números Para números não-negativosnão-negativos: devem conter : devem conter o o módulomódulo, tal como em sinal + magnitude, tal como em sinal + magnitude

Para números Para números negativosnegativos: devem conter o : devem conter o complemento do módulocomplemento do módulo, somado com , somado com 11

ComplementoComplemento de um conjunto de bits: todos de um conjunto de bits: todos os bits são os bits são invertidosinvertidos (complemento de (complemento de 00100010 é é 11011101))

Page 66: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: Exemplo: representação em comp-2 de representação em comp-2 de 5 bits5 bits dos números +9 e -6dos números +9 e -6

Comp-2 (+9): Comp-2 (+9): bit-sinal 0; (9)bit-sinal 0; (9)1010 = (1001) = (1001)22

Comp-2 (+9) = 01001Comp-2 (+9) = 01001

Comp-2 (-6): Comp-2 (-6): bit-sinal 1; (6)bit-sinal 1; (6)1010 = (0110) = (0110)22

Complemento (0110) + 1 = 1001 + 1 = 1010Complemento (0110) + 1 = 1001 + 1 = 1010

Comp-2 (-6) = 11010Comp-2 (-6) = 11010

Page 67: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: Exemplo: decimais correspondentes às decimais correspondentes às seguintes representações em comp-2: seguintes representações em comp-2: 0110101101 e e 1100111001

01101:01101: bit-sinal é 0; (1101) bit-sinal é 0; (1101)2 2 = (13) = (13)1010

01101 =01101 = comp-2 (+13)comp-2 (+13)

11001: 11001: bit-sinal é 1; bit-sinal é 1;

complemento(1001) + 1= 0110 + 1 = 0111 = complemento(1001) + 1= 0110 + 1 = 0111 = (7)(7)1010

11001 =11001 = comp-2 (-7)comp-2 (-7)

Page 68: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: Exemplo: números representáveis em comp-2 de números representáveis em comp-2 de 5 bits5 bits

Números fora do intervalo [-16, +15] não são Números fora do intervalo [-16, +15] não são representáveis em comp-2 de 5 bitsrepresentáveis em comp-2 de 5 bits

Page 69: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Aritmética em complemento de 2:Aritmética em complemento de 2:

1.1.Não apresenta dois zeros: Não apresenta dois zeros: 10000 = Comp-2 (-10000 = Comp-2 (-16)16)

2.2.Nos circuitos aritméticos o bit-sinal tem o Nos circuitos aritméticos o bit-sinal tem o mesmo tratamentomesmo tratamento dos outros bits dos outros bits

Para comprovar o item 2, sejam analisadas as Para comprovar o item 2, sejam analisadas as seguintes operações de soma:seguintes operações de soma:

(10 + 5), (5 + (-6)), (15 + (-10)), (12 + 6), ((-(10 + 5), (5 + (-6)), (15 + (-10)), (12 + 6), ((-9) + (-8))9) + (-8))

Page 70: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

10 + 5: 10 + 5: o resultado deve ser +15o resultado deve ser +15

Comp-2 (+10) = 01010; Comp-2 (+5) = Comp-2 (+10) = 01010; Comp-2 (+5) = 00101; Então:00101; Então:

Page 71: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

5 + (-6): 5 + (-6): o resultado deve ser -1o resultado deve ser -1

Comp-2 (+5) = 00101; Comp-2 (-6) = 11010; Comp-2 (+5) = 00101; Comp-2 (-6) = 11010; Então:Então:

Page 72: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

15 + (-10): 15 + (-10): o resultado deve ser +5o resultado deve ser +5

Comp-2 (+15) = 01111; Comp-2 (-10) = Comp-2 (+15) = 01111; Comp-2 (-10) = 10110; Então:10110; Então:

Page 73: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

12 + 6: 12 + 6: o resultado deve ser +18, fora de [-16, o resultado deve ser +18, fora de [-16, +15] (overflow);+15] (overflow);

Espera-se Espera-se resultado incorretoresultado incorreto!!!!!!

Comp-2 (+12) = 01100; Comp-2 (+6) = Comp-2 (+12) = 01100; Comp-2 (+6) = 00110; Então:00110; Então:

Page 74: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

(-9) + (-8): (-9) + (-8): o resultado deve ser -17, fora de [-o resultado deve ser -17, fora de [-16, +15] (overflow);16, +15] (overflow);

Espera-se Espera-se resultado incorretoresultado incorreto!!!!!!

Comp-2 (-9) = 10111; Comp-2 (-8) = 11000; Comp-2 (-9) = 10111; Comp-2 (-8) = 11000; Então:Então:

Page 75: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Nas operações com resultados corretosNas operações com resultados corretos

Os dois carry’s mais à esquerda foram Os dois carry’s mais à esquerda foram iguaisiguais

Nas operações com resultados incorretosNas operações com resultados incorretos

Os dois carry’s mais à esquerda foram Os dois carry’s mais à esquerda foram diferentesdiferentes

Overflow = Carryn-1 exor Carryn-2

Page 76: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exercícios 1.2.4:Exercícios 1.2.4:

O códigos a seguir são números binários inteiros O códigos a seguir são números binários inteiros escritos em complemento de 2, cada um com escritos em complemento de 2, cada um com diferente número de bits. Dizer o valor em diferente número de bits. Dizer o valor em decimal com sinal de cada um deles.decimal com sinal de cada um deles.

1.1.1111011110

2.2.1111

3.3.10101011010101

4.4.010101010010101010

5.5.1000000010000000

Page 77: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2.5 – Representação de números 1.2.5 – Representação de números reais no computadorreais no computador

Qualquer número real Qualquer número real x x pode ser colocado na pode ser colocado na formaforma

x = 0.mantissa * basex = 0.mantissa * baseexpoenteexpoente

Mantissa, base e expoente podem estar Mantissa, base e expoente podem estar escritos em escritos em qualquer basequalquer base

Aqui, por razões didáticas, Aqui, por razões didáticas, basebase e e expoenteexpoente serão expressos em serão expressos em base 10base 10

Page 78: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos:Exemplos:

(257.45)10 = (0.25745)10 * 103 = (0.0025745)10 * 105 = (0.0000025745)10 * 108

(0.00101)2 = (0.101)2 * 2-2 =

(0.00000101)2 * 23

(0.00000101)2 = (0.0101)2 * 16-1 =

(0.000000000101)2 * 161

Sistema de ponto-flutuante: representação de números reais onde um mesmo número pode ter o ponto em qualquer posição da mantissa, bastando ajustar o valor do expoente

Page 79: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Forma normalizada: Forma normalizada: forma em que o dígito forma em que o dígito mais significativo da mantissa está à mais significativo da mantissa está à direitadireita do do ponto e o mais ponto e o mais próximopróximo possível dele possível dele

Forma desnormalizada: Forma desnormalizada: forma em que isso não forma em que isso não ocorreocorre

(257.45)10 = (0.25745)10 * 103 = (0.0025745)10 * 105 = (0.0000025745)10 * 108

(0.00101)2 = (0.101)2 * 2-2 =

(0.00000101)2 * 23

(0.00000101)2 = (0.0101)2 * 16-1 =

(0.000000000101)2 * 161

Page 80: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Armazenamento no computador:Armazenamento no computador:

x = 0.mantissa * basex = 0.mantissa * baseexpoenteexpoente

Armazena-se a Armazena-se a mantissamantissa e o e o expoenteexpoente no no sistema bináriosistema binário

A A basebase é uma é uma potência de 2 potência de 2 e não é e não é armazenadaarmazenada

Ela é Ela é implícitaimplícita nos nos circuitoscircuitos e/ou nos e/ou nos programasprogramas que manipulam números reais que manipulam números reais

Page 81: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Armazenamento no computador:Armazenamento no computador:

x = 0.mantissa * basex = 0.mantissa * baseexpoenteexpoente

Utiliza-se sistema de ponto-flutuante e forma Utiliza-se sistema de ponto-flutuante e forma normalizadanormalizada

Tipicamente usa-se:Tipicamente usa-se: Um bit para o Um bit para o sinal sinal Um determinado número de bits para a Um determinado número de bits para a

mantissa em comp-2mantissa em comp-2 Um determinado número de bits para o Um determinado número de bits para o

expoenteexpoente

Page 82: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Não há Não há bit-sinalbit-sinal para para expoentesexpoentes

Para se armazenar o Para se armazenar o expoenteexpoente de um número: de um número:

Soma-se a ele o módulo do expoente Soma-se a ele o módulo do expoente negativo de negativo de maior módulo maior módulo representável, representável, obtendo-se o que se chama obtendo-se o que se chama característicacaracterística do númerodo número

Armazena-se a Armazena-se a característicacaracterística, ao invés do , ao invés do expoenteexpoente

Page 83: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo:Exemplo: seja um sistema de ponto-flutuante seja um sistema de ponto-flutuante com as seguintes dimensões:com as seguintes dimensões:

32 bits (4 bytes) 32 bits (4 bytes) para armazenar npara armazenar nosos reais reais 1 bit 1 bit para o sinalpara o sinal 23 bits23 bits para a mantissa para a mantissa 8 bits (1 byte) 8 bits (1 byte) para o expoente (ou para o expoente (ou

característica)característica) Base = 2Base = 2

Como ficam armazenados nesse sistema os Como ficam armazenados nesse sistema os seguintes números:seguintes números:

(0.5625)(0.5625)1010 , (2.3) , (2.3)1010 e (0.0625) e (0.0625)1010 ? ?

Page 84: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

32 bits (4 bytes) 32 bits (4 bytes) para armazenar npara armazenar nosos reais reais 1 bit 1 bit para o sinalpara o sinal 23 bits23 bits para a mantissa para a mantissa 8 bits (1 byte) 8 bits (1 byte) para o expoente (ou para o expoente (ou

característica)característica) Base = 2Base = 2

Com Com 8 bits 8 bits para expoentes, esses podem variar para expoentes, esses podem variar no intervalo no intervalo [-128, 127][-128, 127]

Expoente negativo de maior módulo:Expoente negativo de maior módulo: -128 -128

Característica = Expoente + 128Característica = Expoente + 128

Page 85: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Representação do número (0.5625)Representação do número (0.5625)1010::

(0.5625)(0.5625)1010 = (0.1001) = (0.1001)22 = (0.1001) = (0.1001)22 * 2 * 200;;

Já está normalizado, logoJá está normalizado, logo

característicacaracterística = 0 + 128 = (128) = 0 + 128 = (128)1010 = = (1000 (1000 0000)0000)22

mantissamantissa = = 100 1000 0000 0000 0000 0000100 1000 0000 0000 0000 0000

Então, (0.5625)Então, (0.5625)1010 fica assim armazenado: fica assim armazenado:

Page 86: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Representação do número (2.3)Representação do número (2.3)1010::

(2.3)(2.3)1010 = (10.0 1001 1001 1001 ...) = (10.0 1001 1001 1001 ...)22 * 2 * 200; ; desnormalizadodesnormalizado

(2.3)(2.3)1010 = (0.100 1001 1001 1001 ...) = (0.100 1001 1001 1001 ...)22 * 2 * 222

característicacaracterística = 2 + 128 = (130) = 2 + 128 = (130)1010 = = (1000 (1000 0010)0010)22

mantissamantissa = = 100 1001 1001 1001 1001 1001100 1001 1001 1001 1001 1001

Então, (2.3)Então, (2.3)1010 fica assim armazenado: fica assim armazenado:

A mantissa sofreu um truncamento!

Imprecisão!

Page 87: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Representação do número (0.0625)Representação do número (0.0625)1010::

(0.0625)(0.0625)1010 = (0.0001) = (0.0001)22 * 2 * 200; ; desnormalizadodesnormalizado

(0.0625)(0.0625)1010 = (0.1) = (0.1)22 * 2 * 2-3-3

característicacaracterística = -3 + 128 = (125) = -3 + 128 = (125)1010 = = (0111 (0111 1101)1101)22

mantissamantissa = = 100 0000 0000 0000 0000 0000100 0000 0000 0000 0000 0000

Então, (0.0625)Então, (0.0625)1010 fica assim armazenado: fica assim armazenado:

Page 88: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo:Exemplo: seja um sistema de ponto-flutuante seja um sistema de ponto-flutuante com as mesmas dimensões do sistema anterior, com as mesmas dimensões do sistema anterior, exceto:exceto:

Base = 16Base = 16

Como ficam armazenados nesse sistema os Como ficam armazenados nesse sistema os seguintes números:seguintes números:

(42.3)(42.3)1010 e (0.0625) e (0.0625)1010 ? ?

Uma alteração unitária no expoente Uma alteração unitária no expoente corresponde a mover o ponto sobre 4 casas na corresponde a mover o ponto sobre 4 casas na mantissamantissa

Page 89: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Representação do número (42.3)Representação do número (42.3)1010::

(42.3)(42.3)1010 = (10 1010.0 1001 1001 1001 ...) = (10 1010.0 1001 1001 1001 ...)22 * * 161600; ;

(42.3)(42.3)1010 = (0.001 0101 0010 0110 0110 0110 = (0.001 0101 0010 0110 0110 0110 ...)...)22 * 16 * 1622

característicacaracterística = 2 + 128 = (130) = 2 + 128 = (130)1010 = = (1000 (1000 0010)0010)22

mantissamantissa = = 001 0101 0010 0110 0110 0110001 0101 0010 0110 0110 0110

Então, (42.3)Então, (42.3)1010 fica assim armazenado: fica assim armazenado:

A mantissa sofreu um truncamento!

Imprecisão!

normalizado

Page 90: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Representação do número (0.0625)Representação do número (0.0625)1010::

(0.0625)(0.0625)1010 = (0.0001) = (0.0001)22 * 16 * 1600; ; já está já está normalizadonormalizado

característicacaracterística = 0 + 128 = (128) = 0 + 128 = (128)1010 = = (1000 (1000 0000)0000)22

mantissamantissa = = 000 1000 0000 0000 0000 0000000 1000 0000 0000 0000 0000

Então, (0.0625)Então, (0.0625)1010 fica assim armazenado: fica assim armazenado:

Page 91: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Observações:Observações:

Limitar o número de bitsLimitar o número de bits para manipular para manipular reais delimita:reais delimita:

O O tamanho máximotamanho máximo dos reais manipuláveis dos reais manipuláveis

A A precisãoprecisão com que os reais são com que os reais são transportados entre computador e ambiente transportados entre computador e ambiente externoexterno

Page 92: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Observações:Observações:

Há infinitos números reaisHá infinitos números reais

Dentro de qualquer intervalo finito, a Dentro de qualquer intervalo finito, a quantidade de números reais é infinitaquantidade de números reais é infinita

Dessa quantidade, apenas um Dessa quantidade, apenas um subconjunto subconjunto finitofinito de números reais é de números reais é representávelrepresentável no no computadorcomputador

-∞ +∞

Page 93: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Observações:Observações:

Qualquer representação de números reais em Qualquer representação de números reais em computadores introduz computadores introduz erroserros

É necessário É necessário truncar a mantissatruncar a mantissa, para que , para que caiba no caiba no espaço finito espaço finito de memória a ela de memória a ela reservadoreservado

Quanto maior esse espaço, menores os erros Quanto maior esse espaço, menores os erros introduzidosintroduzidos

Page 94: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Observações:Observações:

Há processos numéricos que Há processos numéricos que amplificamamplificam muito pequenos erros como esses, muito pequenos erros como esses, comprometendo os resultadoscomprometendo os resultados

Portanto a programação envolvendo números Portanto a programação envolvendo números reais deve ser muito criteriosa para que os reais deve ser muito criteriosa para que os erros desses resultados não sejam erros desses resultados não sejam significativossignificativos

Page 95: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exercícios 1.2.5:Exercícios 1.2.5:

Um computador utiliza 32 bits (4 bytes) para Um computador utiliza 32 bits (4 bytes) para armazenar números reais; 1 bit para o sinal, 8 armazenar números reais; 1 bit para o sinal, 8 bits para a característica e 23 bits para a bits para a característica e 23 bits para a mantissa.mantissa.

1.1.Supondo que a base para a característica seja Supondo que a base para a característica seja 2, dizer como ficam armazenado nesse 2, dizer como ficam armazenado nesse computador os números (242.6)computador os números (242.6)1010 e e (0.0859375)(0.0859375)1010

2.2.Supondo agora que a base seja 16, dizer como Supondo agora que a base seja 16, dizer como ficam armazenado nesse computador os ficam armazenado nesse computador os números (115,9)números (115,9)1010 e (0.0234375) e (0.0234375)1010

Page 96: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2.6 – Representação de textos no 1.2.6 – Representação de textos no computadorcomputador

Textos são importantes informações Textos são importantes informações manipuladas por computadoresmanipuladas por computadores

Exemplos:Exemplos:

Empregados de uma empresaEmpregados de uma empresa Livros de uma bibliotecaLivros de uma biblioteca Conteúdo didático de aulas e livrosConteúdo didático de aulas e livros

Page 97: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

TextoTexto é uma sequência linear de símbolos de é uma sequência linear de símbolos de grafia denominados grafia denominados caracterescaracteres

Exemplos de caracteres:Exemplos de caracteres:

Letras maiúsculas e minúsculas: Letras maiúsculas e minúsculas: A, B, ... , Z, A, B, ... , Z, a, b, ... , za, b, ... , z

Dígitos decimais: Dígitos decimais: 0, 1, 2, ... , 8, 90, 1, 2, ... , 8, 9 Operadores aritméticos: Operadores aritméticos: +, -, *, /+, -, *, / Separadores: Separadores: (, ), [, ], {, }(, ), [, ], {, } Caracteres de pontuação: Caracteres de pontuação: . , ; ! ? :. , ; ! ? : Caracteres especiais: Caracteres especiais: @, #, $, %, &@, #, $, %, & Caracteres de controle: muda linha Caracteres de controle: muda linha (nl)(nl), ,

tabulação tabulação (ht), (ht), etc.etc.

Page 98: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Cada caractere ocupa Cada caractere ocupa 1 byte 1 byte (8 bits) na (8 bits) na memóriamemória

A introdução de textos na memória pelo A introdução de textos na memória pelo teclado se dá por meio de teclado se dá por meio de conversão de cada conversão de cada teclatecla digitada para um determinado conjunto digitada para um determinado conjunto de de 8 bits8 bits

Cada caractere tem seu conjunto específico Cada caractere tem seu conjunto específico denominado denominado padrão de bitspadrão de bits

Com 8 bits, existem 256 padrões distintos, Com 8 bits, existem 256 padrões distintos, possibilitando representar 256 caracteres possibilitando representar 256 caracteres diferentesdiferentes

Page 99: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

A determinação dos padrões de bits para cada A determinação dos padrões de bits para cada caractere é estabelecido por padronizações caractere é estabelecido por padronizações internacionais denominadas internacionais denominadas códigos para códigos para informaçõesinformações

O código mais conhecido é o O código mais conhecido é o ASCIIASCII (American (American Standard Code for Information Interchange) Standard Code for Information Interchange)

Ver tabela a seguir:Ver tabela a seguir:

Page 100: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Tabela para o código ASCII:Tabela para o código ASCII:

0 1 2 3 4 5 6 7 8 9

0 nul bel bs ht

10 nl cr

20 esc

30 sp ! " # $ % & '

40 ( ) * + , - . / 0 1

50 2 3 4 5 6 7 8 9 : ;

60 < = > ? @ A B C D E

70 F G H I J K L M N O

80 P Q R S T U V W X Y

90 Z [ \ ] ^ _ ` a b c

100

d e f g h i j k l m

110

n o p q r s t u v w

120

x y z { | } ~ del

Page 101: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplos:Exemplos:

0 1 2 3 4 5 6 7 8 9

0 nul

bel

bs ht

10 nl cr

20 esc

30 sp ! " # $ % & '

40 ( ) * + , - . / 0 1

50 2 3 4 5 6 7 8 9 : ;

60 < = > ? @ A B C D E

70 F G H I J K L M N O

80 P Q R S T U V W X Y

90 Z [ \ ] ^ _ ` a b c

100

d e f g h i j k l m

110

n o p q r s t u v w

120

x y z { | } ~ del

Caractere ‘K’:

linha 70 + coluna 5 = (75)10 = (1001011)2;

ASCII (‘K’) = 01001011

Caractere ‘&’:

linha 30 + coluna 8 = (38)10 = (100110)2;

ASCII (‘&’) = 00100110Caractere ‘{’:

linha 120 + coluna 3 = (123)10 = (1111011)2;

ASCII (‘{’) = 01111011

Page 102: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Para maior clareza, os códigos estarão em Para maior clareza, os códigos estarão em decimaldecimal

0 1 2 3 4 5 6 7 8 9

0 nul

bel

bs ht

10 nl cr

20 esc

30 sp ! " # $ % & '

40 ( ) * + , - . / 0 1

50 2 3 4 5 6 7 8 9 : ;

60 < = > ? @ A B C D E

70 F G H I J K L M N O

80 P Q R S T U V W X Y

90 Z [ \ ] ^ _ ` a b c

100

d e f g h i j k l m

110

n o p q r s t u v w

120

x y z { | } ~ del

Exemplos:

ASCII (‘K’) = 75

ASCII (‘&’) = 38

ASCII (‘{’) = 123

Esses valores são as representações internas dos caracteres

Page 103: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Significado de alguns caracteres de controle:Significado de alguns caracteres de controle:

O caractere O caractere belbel toca uma campainha, durante toca uma campainha, durante um curtíssimo período de tempoum curtíssimo período de tempo

O caractere O caractere nul nul é muito usado como é muito usado como finalizador de sequências de caracteresfinalizador de sequências de caracteres

Page 104: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Exemplo: armazenamentoExemplo: armazenamento

do textodo texto

“Cada caractere tem seu padrao de 8 bits; <nl>  <nl>Existem 256 padroes de bits distintos.”

Page 105: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Armazenamento a partirArmazenamento a partir

do endereço 407do endereço 407

“Cada caractere tem seu padrao de 8 bits; <nl>  <nl>Existem 256 padroes de bits distintos.”

Page 106: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

A tabela ASCII vista abrange o intervalo A tabela ASCII vista abrange o intervalo [0, [0, 127]127]; é a tabela básica; é a tabela básica

No intervalo [128, 255], caracteres especiais: No intervalo [128, 255], caracteres especiais:

Letras acentuadas: Letras acentuadas: ç, á, ü, etc. ç, á, ü, etc. Letras de alfabetos diversos: Letras de alfabetos diversos: , , , , ښښ, , ضض, , ځځ , , etc.etc. Símbolos matemáticos: Símbolos matemáticos: ∞, ∫, ≠, ↔, √, etc.∞, ∫, ≠, ↔, √, etc. Figuras especiais; Figuras especiais; ♥, ♫, ©, ☺, ♥, ♫, ©, ☺, , etc. , etc.

Esse intervalo tem sido usado de forma Esse intervalo tem sido usado de forma diferentediferente pelos vários fabricantes de hardware pelos vários fabricantes de hardware e de software, dificultando a e de software, dificultando a portabilidadeportabilidade dos dos programasprogramas

Page 107: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2.7 – Representação de imagens no 1.2.7 – Representação de imagens no computadorcomputador

A tela de vídeo é dividida retangularmente em A tela de vídeo é dividida retangularmente em um conjunto de minúsculos quadrados um conjunto de minúsculos quadrados chamados chamados pixels pixels (Picture elements)(Picture elements)

Vídeo em preto e brancoVídeo em preto e branco

00 para branco e para branco e 11 para preto para preto

Page 108: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Vídeo colorido - Padrão RBG (Red Blue Green)Vídeo colorido - Padrão RBG (Red Blue Green)

Diferentes cores são obtidas a partir de Diferentes cores são obtidas a partir de intensidades diferentes dessas intensidades diferentes dessas três cores três cores primáriasprimárias

Um Um pixelpixel é armazenado em é armazenado em 3 bytes 3 bytes (1 byte (1 byte por cor básica)por cor básica)

Exemplo:Exemplo: imagem com 1024 linhas de 1024 imagem com 1024 linhas de 1024 pixels ocupará pixels ocupará 3 Megabytes 3 Megabytes

Existem técnicas de Existem técnicas de compressão de dados compressão de dados para reduzir o para reduzir o gasto excessivo gasto excessivo de memóriade memória

Page 109: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

1.2.8 – Representação de instruções no 1.2.8 – Representação de instruções no computadorcomputador

Um Um programaprograma é um conjunto de é um conjunto de instruçõesinstruções

Essas instruções devem estar armazenadas na Essas instruções devem estar armazenadas na RAM, para que sejam executadas pela CPURAM, para que sejam executadas pela CPU

Na RAM devem ficar também os Na RAM devem ficar também os dadosdados (números, textos, imagens) a serem manipulados (números, textos, imagens) a serem manipulados por essas instruçõespor essas instruções

É necessária É necessária cuidadosa programaçãocuidadosa programação para para que a CPU não tome que a CPU não tome dado por instrução dado por instrução e e vice-versavice-versa

Page 110: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Uma instrução é dividida tipicamente em duas Uma instrução é dividida tipicamente em duas partes: partes:

CCódigo da operaçãoódigo da operação, que é a especificação , que é a especificação da operação a ser realizada pela instruçãoda operação a ser realizada pela instrução

Informações sobre os Informações sobre os operandosoperandos

Há instruções com Há instruções com zerozero, , umum, , doisdois ou até ou até maismais operandosoperandos

Para cada operando, a informação pode ser o Para cada operando, a informação pode ser o própriopróprio ou o seu ou o seu endereçoendereço

Page 111: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Classes de instruções:Classes de instruções:

Entrada e saída de dados:Entrada e saída de dados: comunicação com comunicação com o meio externo ao computador ou com sua o meio externo ao computador ou com sua memória secundária, para receber e/ou enviar memória secundária, para receber e/ou enviar informaçõesinformações

Movimentação de dados:Movimentação de dados: transporte de transporte de dados entre a RAM e os registradores da CPU dados entre a RAM e os registradores da CPU e carregamento de constantes em um desses e carregamento de constantes em um desses módulos de memóriamódulos de memória

Page 112: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

Classes de instruções:Classes de instruções:

Operações aritméticas e lógicas:Operações aritméticas e lógicas: cálculos cálculos entre conteúdos de palavras do sistema de entre conteúdos de palavras do sistema de memória e/ou constantes especificadas na memória e/ou constantes especificadas na própria instruçãoprópria instrução

Controle do fluxo de execução:Controle do fluxo de execução: alteração alteração condicional ou incondicional da sequência de condicional ou incondicional da sequência de instruçõesinstruções

Page 113: Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação

O O espaço ocupadoespaço ocupado por uma instrução por uma instrução depende: depende:

Da Da naturezanatureza da operação a ser realizada da operação a ser realizada Do Do númeronúmero de operandos de operandos Da forma de Da forma de referenciá-losreferenciá-los Da Da arquiteturaarquitetura do computador do computador

Há instruções que ocupam apenas Há instruções que ocupam apenas 1 byte1 byte; ; outras ocupam outras ocupam dois ou mais bytesdois ou mais bytes