63
Fundamentos da arquitetura de computadores Sistemas de numeração e representação de dados Prof. André Renato 1º Semestre / 2012

Fundamentos da arquitetura de computadores Sistemas de numeração e representação de dados Prof. André Renato 1º Semestre / 2012

Embed Size (px)

Citation preview

  • Slide 1
  • Fundamentos da arquitetura de computadores Sistemas de numerao e representao de dados Prof. Andr Renato 1 Semestre / 2012
  • Slide 2
  • Sistemas de numerao Os sistemas de numerao esto na base da matemtica. Eles so responsveis por estabelecer a relao entre valores e smbolos. Sem eles fica muito difcil realizar operaes simples como adio ou diviso.
  • Slide 3
  • Sistemas de numerao Um sistema de numerao precisa definir: Uma base numrica: base 10, base 2, base 16, base 134 etc. Um conjunto de smbolos distintos (alfabeto), sendo um para cada valor da base: algarismos arbicos, alfabeto hexadecimal, {0,1} etc
  • Slide 4
  • Sistemas de numerao O sistema de numerao mais utilizado pelos humanos o decimal (base 10, com os algarismos arbicos). Com o advento da computao digital, o sistema de numerao binrio (ou simplesmente sistema binrio) ganhou uma importncia crucial, principalmente para os profissionais da rea.
  • Slide 5
  • Sistemas de numerao Por que o sistema binrio em detrimento do sistema decimal? Quando as mquinas (computadores) passaram a ser dispositivos eltricos, comeou a ficar complicado representar 10 tipos diferentes de correntes eltricas. Era muito mais simples representar apenas: passagem de corrente (circuito fechado) ou no (circuito aberto).
  • Slide 6
  • Sistemas de numerao Cada valor representado por combinao de smbolos 0 e 1, da esquerda para direita. Estes smbolos que compem os nmeros so chamados de bits. A cada 8 bits temos 1 byte. 1024 bytes equivalem a 1 Kilobyte (KB) 1024 KBs equivalem a 1 Megabyte (MB) 1024 MBs equivalem a 1 Gigabyte (GB) 1024 GBs equivalem a 1 Terabyte (TB) 1024 TBs equivalem a 1 Petabyte (PB)
  • Slide 7
  • Sistemas de numerao O sistema binrio se adequa muito bem s mquinas digitais, permitindo um processamento bastante eficiente. Todas as operaes matemticas bsicas presentes no sistema decimal podem ser facilmente adaptadas para o sistema binrio. Entretanto, primeiro necessrio entender como converter valores entre os dois sistemas.
  • Slide 8
  • Sistemas de numerao Converso decimal-binrio: Consiste em pegar o nmero decimal e realizar sucessivas divises por 2, at que o quociente seja 0 (zero). Depois, para formar o nmero em binrio, so pegos todos os restos das divises do final para o comeo. Exemplos:
  • Slide 9
  • Sistemas de numerao Converso binrio-decimal: Consiste em realizar o processo inverso, ou seja, multiplicaes por potncias de 2, seguida da soma de produtos. Um jeito simples possvel atravs da arrumao dos smbolos da seguinte forma: 256 128 64 32 16 8 4 2 1 1 0 1 1 1 0 1 0 1
  • Slide 10
  • Sistemas de numerao Adio de dois nmeros: O resultado da soma de dois algarismos binrios dado pela tabela a seguir: Na prtica, o ltimo resultado corresponde a deixar o algarismo 0 e aplicar o mundialmente famoso vai 1 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 (2, em decimal)
  • Slide 11
  • Sistemas de numerao importante destacar que o resultado nunca poder conter algarismos diferentes de 0 e 1. Adies de trs ou mais valores podem ser feitas atravs de resultados parciais entre dois valores de cada vez. Exemplos de 2 e 3 parcelas:
  • Slide 12
  • Sistemas de numerao Como fica a representao de nmeros negativos em binrio? Obviamente, o computador no pode armazenar -101 (-5). O sinal de negativo precisa ser expresso na forma de um smbolo binrio.
  • Slide 13
  • Sistemas de numerao O primeiro esquema de representao chama-se Sinal e Magnitude (SM). Nele, o mdulo do nmero representado de forma equivalente. O sinal de negativo pode ser substitudo pelo smbolo (bit) 1 colocado na primeira posio esquerda. Ex: -13 (10001101, em 8 bits)
  • Slide 14
  • Sistemas de numerao A representao em SM traz alguns pontos ruins: Se usarmos 8 bits para representar nmeros, precisaremos reservar 1 bit para o sinal, restando apenas 7 bits para o mdulo do nmero. O valor 0 (zero) pode ser representado de duas formas: 00000000 e 10000000 (-0).
  • Slide 15
  • Sistemas de numerao Alm disso, sempre que realizarmos uma operao aritmtica, precisaremos saber se o resultado ser positivo ou negativo para colocar ou no o smbolo 1 na frente dos outros bits. Embora seja uma representao vlida, na prtica SM pouco utilizado. O mais comum utilizar outra representao de nmeros negativos.
  • Slide 16
  • Sistemas de numerao Complemento: Existem basicamente dois tipos de complementos para o sistema binrio: Complemento base-1 Complemento base Como estamos falando de base 2, os complementos tambm so denominados: Complemento 1 (C1) e Complemento 2 (C2).
  • Slide 17
  • Sistemas de numerao Para calcular o complemento C1, precisamos dos seguintes passos: Converter o mdulo do nmero em decimal para binrio (j vimos isso); Completar com 0 (zero) esquerda at o nmero ter a quantidade de bits do problema em questo; Calcular quanto falta em cada casa para alcanar o maior valor possvel (base-1 = 1);
  • Slide 18
  • Sistemas de numerao Exemplo: -13 (com 8 bits) Valor binrio (13): 1101 Com 8 bits: 00001101 Quanto falta em cada casa para chegar a 1? 11110010 Na prtica, esta ltima etapa corresponde, no sistema binrio, a inverter os smbolos 0 e 1.
  • Slide 19
  • Sistemas de numerao O complemento base-1 ainda apresenta um dos problemas do SM: O valor do nmero 0 pode ser representado de duas formas: 00000000 e 11111111 (-0) Para evitar esta situao, o complemento base (C2) mais indicado.
  • Slide 20
  • Sistemas de numerao Para calcular o complemento C2 de um nmero, precisamos calcular o complemento C1 e depois adicionar 1 ao resultado. comum acontecer o vai 1 no ltimo bit (o mais significativo). Neste caso, o vai 1 deve ser ignorado. Exemplo:
  • Slide 21
  • Sistemas de numerao No complemento C2, no h duas forma de representar 0 (provar!!!). Assim, ele o mais utilizado para representar nmeros negativos, pois as etapas de inverso e soma do 1 so feitas muito rapidamente pelo computador.
  • Slide 22
  • Sistemas de numerao A subtrao de dois nmeros em binrio pode ser feita de duas maneiras: A primeira a forma tradicional que utilizamos em decimal. Utilizamos a seguinte tabela: 0 0 = 0 1 0 = 1 0 1 = 1 (vem 1) 1 1 = 0
  • Slide 23
  • Sistemas de numerao Exemplos: 12 7 = ???? 34 6 = ???? 5 7 = ????
  • Slide 24
  • Sistemas de numerao A segunda forma de realizar a subtrao vem de uma propriedade da aritmtica: A - B = A + (-B) Para tanto, precisamos calcular o complemento C2 do subtraendo antes de realizar a operao desejada.
  • Slide 25
  • Sistemas de numerao Exemplos: 12 7 = ???? 34 6 = ???? 5 7 = ????
  • Slide 26
  • Sistemas de numerao A multiplicao e a diviso em binrio seguem um esquema semelhante ao utilizado em decimal, porm mais simples. Exemplos: 17x5=85 21x4=84 85/5=17 84/21=4
  • Slide 27
  • Sistemas de numerao O sistema binrio, como j foi dito, bastante apropriado para mquinas digitais como o computador. Por ser utilizada uma base menor do que a decimal, normalmente os nmeros em binrios ocupam grandes sequncias de 16 ou 32 bits cada.
  • Slide 28
  • Sistemas de numerao Para seres humanos, estes nmeros grandes so de difcil tratamento. Imagine um HD com apenas 200MB: Se voc um programador de um aplicativo para recuperao de informaes, pode ser interessante que voc controle o acesso a cada pequena parte (byte) do disco. Um disco de 200MB contm 209715200 bytes. J imaginou este nmero em binrio?
  • Slide 29
  • Sistemas de numerao Para certas aplicaes, necessrio ter outro sistema de numerao que permita nmeros menores que os representados em binrio. Um dos sistemas propostos foi o octal (base 8). A converso de decimal para octal feita de forma idntica ao sistema binrio.
  • Slide 30
  • Sistemas de numerao Converter: 12 36 1020
  • Slide 31
  • Sistemas de numerao Adio e subtrao podem ser feitas de forma anloga, lembrando que o resultado nunca poder ter algarismo estranhos ao alfabeto do sistema de numerao. A partir de agora, fica mais importante a separao entre smbolo e valor.
  • Slide 32
  • Sistemas de numerao Como seria o complemento base 1 (C7) para os nmeros, com 8 algarismos: 47 125 89 E o complemento base (C8)???
  • Slide 33
  • Sistemas de numerao A multiplicao e a diviso devem ser feitas de forma semelhante. O computador no calcula estes resultados diretamente. Mesmo que seja feito um programa que trabalhe com nmeros em octal, o computador os converter para binrio primeiro.
  • Slide 34
  • Sistemas de numerao Para fazer a converso octal binrio, devem analisar a relao entre as bases: 8 equivalente a 2 3 ; Logo, so necessrios trs algarismos da base 2 para representar um valor da base 8;
  • Slide 35
  • Sistemas de numerao Se pegarmos cada algarismo em octal e o representarmos por trs algarismos binrios, podemos fazer a converso diretamente. Exemplo: (2431) 8 = 1305 = (????) 2 (101) 8 = 65 = (????) 2 (137) 8 = 95 = (????) 2
  • Slide 36
  • Sistemas de numerao Para fazer a converso binrio octal precisamos pegar grupos de 3 bits, da direita para a esquerda, e formar um algarismo em octal com cada grupo. Exemplo: (10101011) 2 = 171= (?????) 8 (111001) 2 = 57 = (?????) 8 (11101101011) 2 = 1899 = (?????) 8
  • Slide 37
  • Sistemas de numerao O sistema octal, embora encurte bastante o tamanho dos nmeros apresenta uma caracterstica ruim: Grande parte das mquinas trabalha, desde o comeo da era digital, com conjunto de 8 bits ou mltiplios; 8, 16, 32, 64 no so divisveis por 3 Logo a representao em octal no fica redonda
  • Slide 38
  • Sistemas de numerao Passou-se a utilizar um sistema de numerao mais potente, chamado de sistema hexadecimal, com base 16. A tabela a seguir mostra a relao de valores e smbolos deste sistema: ValorSmboloValorSmbolo 0088 1199 2210A 3311B 4412C 5513D 6614E 7715F
  • Slide 39
  • Sistemas de numerao A converso decimal hexadecimal se faz de forma semelhante; Devemos ter ateno ao valores maiores que 9 e seus respectivos smbolos; Exemplo: 1234 156 256 1099
  • Slide 40
  • Sistemas de numerao A converso hexadecimal decimal se faz com o mtodo das potncias: Exemplo: 12D A3F 7BC
  • Slide 41
  • Sistemas de numerao A converso hexadecimal binrio se faz transformando cada algarismo da base 16 em 4 algarismos binrios (bits), pois 16 = 2 4 ; Exemplo: A2DE F459 50AB
  • Slide 42
  • Sistemas de numerao A converso binrio hexadecimal se faz atravs de formao de grupos com 4 bits cada, comeando pela direita; Exemplo: 101010101111 10111011 10000110011111
  • Slide 43
  • Sistemas de numerao A converso de hexadecimal octal no pode ser feita diretamente. Primeiro passamos para binrio e depois para octal. O processo inverso tambm passa pelo sistema binrio primeiro. Exemplo: (12DD) 16 = (????) 8 (5637) 8 = (????) 16
  • Slide 44
  • Sistemas de numerao Como fica o complemento base - 1 (C15) dos seguintes nmeros em hexadecimal? 1372 ADEF 340C E o complemento base (C16)?
  • Slide 45
  • Sistemas de numerao Adio e subtrao podem ser feitos de forma semelhante s que foram vistas. Exemplos: 1234+ABCD 982+12F 45A1-12FF 513-4ED
  • Slide 46
  • Sistemas de numerao Multiplicaes e divises tambm podem seguir os mtodos j vistos. Vale lembrar que o computador sempre far as operaes em binrio. Ainda falta analisar como o computador trata nmeros reais (fracionrios). Como ser representado 12,125, por exemplo?
  • Slide 47
  • Sistemas de numerao Pela forma de converso tradicional, podemos fazer as sucessivas divises por 2 na parte inteira. A parte fracionria realiza um procedimento diferente. Vamos ver o nmero 12,125! Como fica a converso binrio decimal?
  • Slide 48
  • Sistemas de numerao A computao empregado como ferramenta de diversas reas da cincia, como fsica, qumica, biologia, matemtica entre outras. Por vezes, necessrio trabalhar com valores muito grandes ou muito pequenos (distncias entre corpos celestes, quantidade de tomos em um composto, tempo de acesso memria, distncia entre tomos de uma molcula).
  • Slide 49
  • Sistemas de numerao Imagine se desejssemos somar N1 e N2, sendo: N1 = 0,000000000076 e N2 = 2341890000000,0000000000 Quantos bits precisaramos para representar o resultado? A imensa maioria seria de 0 (zeros).
  • Slide 50
  • Sistemas de numerao Para tanto, usa-se em computao a chamada notao cientfica, que recebe o nome de ponto flutuante. O nmero 5 bilhes poderia ser escrito assim: +5 x 10 9 Se considerarmos a base 10 como valor constante da representao, precisaramos de 3 bits para o valor da mantissa 5 (parte fracionria) e mais bits 4 para o expoente 9
  • Slide 51
  • Sistemas de numerao Um mesmo nmero pode ser representado de diversas formas diferentes em notao cientfica: 4 x 10 2 40 x 10 1 0,4 x 10 3 Normalmente, utiliza-se a ltima forma, com a mantissa ente 1 e 0,1 chamada de normalizada.
  • Slide 52
  • Sistemas de numerao Como trabalharemos em base binria, teremos valores do tipo: 5 = 101 = 0,101 x 2 3 12 = 1100 = 0,11 x 2 4 57 = 111001 = 0,111001 x 2 6
  • Slide 53
  • Sistemas de numerao Internamente, o sistema computacional deve armazenar 4 informaes: O sinal da mantissa O valor da mantissa O sinal do expoente O valor do expoente
  • Slide 54
  • Sistemas de numerao Alm desses valores, outros aspectos precisam ser definidos: A quantidade de bits utilizados; O modo de representao da mantissa O modo de representao do expoente A quantidade de bits da mantissa e do expoente A posio do sinal dos valores (se for o caso) A base de exponenciao
  • Slide 55
  • Sistemas de numerao Vejamos um exemplo: SMantissaExpoente 1724 32 bits S sinal do nmero Expoente: 1 bit para sinal e 6 para magnitude Mantissa: normalizada Base de exponenciao: 2
  • Slide 56
  • Sistemas de numerao Exemplos (converter para o formato do slide anterior): 407,375 -0,078125
  • Slide 57
  • Sistemas de numerao As operaes de adio e subtrao de dois nmeros em ponto flutuante requer, numa primeira etapa, o alinhamento das mantissa de forma que os expoente sejam iguais; Depois, realiza-se a soma ou subtrao das mantissas, mantendo o expoente. Caso o resultado no esteja normalizado, este procedimento executado.
  • Slide 58
  • Sistemas de numerao Para multiplicao ou diviso, no h necessidade de alinhamento das mantissas. Realiza-se a operao desejada nas mantissas e soma-se ou subtrai-se os expoentes, se as operaes forem de multiplicao ou diviso, respectivamente.
  • Slide 59
  • Sistemas de numerao J aprendemos como os nmeros so armazenados e tratados pelo computador. Porm, a computao no envolve somente nmeros. Letras e outros smbolos so muito utilizados para informar o usurio sobre algum evento do sistema, por exemplo.
  • Slide 60
  • Sistemas de numerao Como o computador consegue armazenar letras??? possvel realizar sucessivas divises por 2 utilizando o caracter $, por exemplo? Logicamente deve haver outra forma de representao. Uma das formas mais utilizadas atravs da Tabela ASCII (American Standard Code for Information Interchange).
  • Slide 61
  • Sistemas de numerao Nesta tabela, todos os smbolos imprimveis, como A-Z, 0-9, @,#,$,%,&,*,+,-,/,\,{,},],[, entre outros esto representados. Alm desses, outros smbolos no imprimveis esto presentes. Cada smbolo possui um valor nico. O smbolo A corresponde ao valor 65 (1000001, em binrio), por exemplo.
  • Slide 62
  • Sistemas de numerao Como o computador sabe que o valor 1000001 ser tratado como letra A e no nmero 65? Esta diferenciao feita pelo programa que utiliza o dado. Se o programa mandar imprimir o valor como nmero, ser tratado como tal. Se o programa manda escrever a mensagem na tela, ser tratado como letra.
  • Slide 63
  • Sistemas de numerao Exemplo Pascal: var codigo:byte; codigo := 65; writeln(codigo); writeln(chr(codigo));