Arquitetura de Computadores Representação de dados 1 Arquitetura de Computadores Representação de dados: – Símbolo: marca visual ou gráfica que representa um objeto que desejamos identificar (ex: A, 1, % , ...) – Numeral: símbolo designado para representar um número (ex: 1, 7, 5+2, 90%, …) – Número: idéia que os símbolos representam. Um número pode ser representado por diversos numerais (ex: 5 = 7 – 2 = 4 + 1 = 10 / 2) 2 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Sistema de Numeração Posicional: – Cada algarismo componente do número têm um valor relativo conforme sua posição no número. Seu valor absoluto é modificado por um fator (peso), o qual varia conforme a posição do algarismo, sendo crescente da direita para a esquerda – Ex: Sistema de numeração decimal 100,00 3 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Algarismos e Números: – Em vez de criar infinitos símbolos (algarismos) para representar cada número desejado, pode-se agrupar valores e simplificar sua representação – Ex: No base 10, até o valor 9, os números são escritos com algarismos diferentes, mas o valor seguinte, 10, é representado por 2 algarismos (1 e 0), pois não temos o algarismo “10” 10 = 1 (grupo de 10 unidades) + 0 (unidades) O que fazemos para representar o valor 10 ? – Esgotadas as possibilidades com os algarismos individuais, utilizamos os 2 “menores” dígitos ou algarismos da base para representar o valor 10 – Recombinação dos algarismos da base – Pode-se usar esta recombinação para representar qualquer valor, aumentando-se apenas a quantidade de dígitos utilizados na representação – Ex: 11, 12, 13, …, 19, 20, 21, …, 29, 30, …, 99, 100, 101, …, 999, 1000, … 4 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores BASE: quantidade de símbolos ou dígitos ou algarismos diferentes que o referido sistema emprega para representar os números Toda a estrutura de formação dos números e realização de operações aritméticas em um sistema posicional está relacionada com o valor da BASE do referido sistema Sistema Decimal: 10 símbolos (base 10) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Sistema Binário: 2 símbolos (base 2) 0, 1 Sistema Hexadecimal: 16 símbolos (base 16) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 5 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Ex: Sistema decimal 2622 = 2000 + 600 + 20 + 2 2000 600 20 2 = 2x1000 = 2x103 = 6x100 = 6x102 = 2x10 = 2x101 = 2x1 = 2x100 6 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Neste exemplo o fator (peso) que modifica o valor do algarismo conforme sua posição, é, em cada parcela, uma potência de 10 (1000, 100, 10 e 1) a partir da potência 0 (algarismo mais à direita do número, ou menos significativo), sendo crescente para a esquerda (potência 1, potência 2, …) até o último algarismo (mais significativo) É um potência de 10 porque o sistema usado como exemplo é o sistema DECIMAL. Isso conduz a um conceito fundamental dos sistemas posicionais: o de BASE 7 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Algarismos e Números: – Qualquer número pode ser interpretado como tendo um VALOR dado pela seguinte expressão: – – – – – onde: k = base do sistema bi = um algarismo da base n = quantidade de algarismos inteiros no número m = quantidade de algarismos fracionários número 8 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Ex: 541.2510 = 5 102 + 4 101 + 1 100 + 2 10-1 + 5 10-2 = (500)10 + (40)10 + (1)10 + (2/10)10 + (5/100)10 = (541.25)10 Onde temos: – k = base do sistema = 10 – bi(s) = algarismos = 5, 4, 1, 2, 5 – n = qtd algarismos inteiros = 3 – m = qtd algarismos fracionários = 2 (5, 4, 1) (2, 5) 9 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Representação numérica para computador: – Toda informação humana pode ser bem representada com zeros e uns. – Existem vários tipos de representações que de uma mesma informação. Ex: 10d = 1010b = 0Ah = 12o = ..... – Os seres humanos tem facilidades para entender o formato decimal – As máquinas tem facilidades para entender o formato Numérico Binário 10 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Limites computacionais – A arquitetura de um computador define o número de bits que o um processador pode usar para calcular valores. Este número de bits pode limitar a quantidade de dados que poderão ser processados, se as informações forem muito grandes. – Uma outra situação comum é que os operando podem não exceder os limites, mas os resultados podem, gerando um overflow. – Ex: em 8 bits é facil somar 100 + 100 = 200d, mas 100x100 = 10000 (Overflow) 11 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Números de Ponto Fixo – Os números de ponto fixo, são representados sempre com número de dígitos fixo, com uma virgula em posição fixa em relação ao número. Ex: 0,23 5,34 9,11 – Podemos representar também como números binários: Ex: 11,00 01,11 11,11 – A virgula não existe nos computadores, apenas na cabeça dos programadores. 12 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Intervalo de Representação e Precisão numérica de ponto fixo – – – – – Uma representação de ponto fixo pode ser caracterizada pelo intervalo de representação de números que podem ser expressos. (a distância entre maior e o menor número) A precisão é dada pela distância entre dois números adjacentes. Exemplo de Intervalo: 0,00 pode ir até 9,99, logo é denotado como [0,00 , 9,99] Exemplo de Precisão: 9,98 e 9,99, a diferença é 0,01, logo a precisão é de 0,01 Exemplo de Erro: o erro é a precisão/2, logo é 0,005. 13 Professor: Arlindo Tadayuki Noji Figura retirada do livro Introdução a Arquitetura de Computadores, Miles J. Murdocca Instituto de Ensino Superior Arquitetura de Computadores Outras formas de representações – – [0,00 , 9,99] , [00,0 , 99,9] , [000, 999] ou [-49, 50] , [ -99,0] Representações e precisão são pontos importantes em arquitetura de computadores porque ambos são finitos ma implementação da arquitetura. Problema: No mundo real, os números são infinitos. 14 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Lei associativa da álgebra nem sempre funciona em computadores – A + (B + C) = (A + B) + C – Se o intervalo numérica for de [-9 , 9 ] e sendo a = 7, b = 4 e c = -3, então: A + (B + C) = 7 + (4 – 3) = 8 (A + B) + C = (7 + 4) – 3) = - 2 ( Overflow) 15 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Conversão de bases 16 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores • Convertendo números de pontos fixos: Exemplo: Convertendo 23,37510 para base binária – A conversão é feita em 2 etapas: Parte INTEIRA + parte FRACIONÁRIA (se houver) PARTE INTEIRA: Continuação – Em cada divisão, o resto encontrado é um algarismo significativo do número na nova base – O primeiro resto encontrado é o valor do algarismo menos significativo (mais à direita) e o último será o algarismo mais significativo (mais à esquerda) – Toda a aritmética envolvida no cálculo é da base de origem (neste caso, base 10) – Utilizar uma tabela de equivalência dos algarismos das bases K e 10, para saber como representar os algarismos encontrados (resto), se necessário, na base K 17 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Parte Inteira 18 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Parte Fracionária 19 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Portanto, para representar um número na base 10 em uma base qualquer K, converte-se primeiro a parte inteira, depois a parte fracionária, e utiliza-se ambas na notação “Inteiro , Fração” – Logo: – – – – 23,375 = ( )2 23 = 10111 0,375 = 0,011 23,375 = 10111,011 20 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Base 10 para Base K: PARTE FRACIONÁRIA: Método de Multiplicações Sucessivas • Ex 2: Nem sempre pode-se converter uma fração finita em uma fração finita em outra base 21 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Base K para Base 10: – Ex 1: 100011,012 = 20 + 100011,012 = ( ) 10 1 25 + 0 24 + 0 23 + 0 22 + 1 21 + 1 0 2-1 + 1 2-2 = 32 + 2 + 1 + 0,25 = 35,2510 – Ex 2: 6738 = 6738 = ( ) 10 6 82 + 7 81 + 3 80 = 384 + 56 + 3 = 44310 22 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Soma Binária 23 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Representação numérica sinalizado – – – Para um número binário de 8 bits, temos 256 possibilidades. Se temos que representar os números negativos também, devemos separar uma parte destas possibilidades para representar estes números. Temos 4 principais formas de sinalizar um número negativo: Sinal de Magnetude Complemento de um Complemento de dois Excesso de 4. 24 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Magnetude de sinal – – Basta colocar o bit mais significativo com o sinal 1, para representar um número negativo Exemplo: +2510 = 000110012 -2510 = 100110012 – Duas representações de Zeros. Ex: 00000000 e 10000000 – Intervalos de números de +127 e – 127 em decimal 25 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Complemento de um Os bits são trocados, os Zeros se tornam Um e os Uns se tornam Zeros. – Exemplo: +2510 = 000110012 – -2510 = 111001102 – Possui duas representação de zeros: +0 = 000000002, -0 = 111111112. – Faixa de valores: +12710, e o menor número -12710, usando 8 bits de representação 26 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Complemento de dois – – Neste modo de representação, é executado o complemento de um, mais a somatória de 1. Exemplo: +2510 = 000110012 -2510 = 111001112 Apenas uma representação numérica do Zero: +0 = 000000002, -0 = 000000002. Faixa de valores: +12710, e o menor número é -12810, para 8 bits. 27 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Representação de Excesso O número é tratado sem sinal, então o valor é deslocado (shifted) do mesmo. – Exemplo: (para criar um numero de excesso, basta somar 128 ao número em um padrão de 8 bits) +1210 = 100011002 – -1210 = 011101002 – Ünica representação do Zero – Maior número é +12710, enquanto que o menor número é -12810, usando 8-bit de representação 28 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Representação de Decimal em Binário – – – Números podem ser representados em base 10, mesmo usando codificação binária. Cada dígito na base 10 ocupa quatro bits, o que é conhecido como decimal codificado em binário (BCD). Então, cada dígito utiliza os primeiros 10 padrões de binários de 4 dígitos. Ex: 123 -> 0001 0010 0011 29 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Complemento de 9 e 10 30 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores 31 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Número de Pontos Flutuantes – – Permite que grandes números e pequenos números possam ser representados usando somente poucos dígitos, de acordo com a precisão especificada. A precisão é determinada pela quantidade de dígitos da fração (inclui a parte inteira e fracionária) e o dimensão do número é determinado pelo número de dígitos do campo expoente. • Examplo (+6.023 1023): 32 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Normalização – – Um número na base 10, digamos 254 pode ser representada em ponto flutuante na forma de 254 x 100 , ou equivalentemente: 25.4 x 101, ou 2.54 x 102, ou .254 x 103, ou .0254 x 104, ou Ou de outras formas infinitas, que podem gerar problemas na hora de comparar dois números. Devido a este problema, os números de ponto flutuante são normalizados.Normalmente, mas nem sempre os números são deslocados para a esquerda logo após a virgula. Ex: .254 103. 33 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Exemplo de ponto flutuante – – Vamos representar o número .254 x 10 3 numa base normalizada de base 8, com bit de sinal e 3 bits de excesso de 4 para o expoente. Passo 1, converter a base .254 103 = 25410. Usando o método já conhecido, temos 25410 = 376 80: 254/8 = 31 R 6 31/8 = 3 R 7 3/8 = 0 R 3 – – Passo 2, normalizar: 376 80 = .376 83. Passo 3: Preencher os campos de bits, com o sinal, expoente de 3+4 = 7 (excesso ed 4) e 4 dígitos para fração = .3760: 0 111 . 011 111 110 000 34 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores No exemplo anterior temos – – – – – base = 8; S = 4; M=3; M = -4 Representação do Zero = 0 000 000 000 000 000; Com estes parametros é possivel calcular os seguintes valores: – – – – – Maior número representável Menor número representável O maior GAP entre dois números O menor GAP entre dois números O total de bits que são necessários para representar o número 35 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Erros, faixas e precisões: – Maior número representável: bM (1 - b-s) = 83 (1 - 8-4) – Menor número representável: bm b-1 = 8-4 - 1 = 8-5 – Maior Gap: bM b-s = 83 - 4 = 8-1 – Menor Gap: bm b-s = 8-4 - 4= 8-8 36 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Erros, faixas e precisões: – Cálculo de número de números de representação Há 5 componentes: – – – – – (A) O sinal de bits: 2x (B) expoente: (M-m) + 1 (C) Valor do primeiro dígito: b – 1 (Não pode ser Zero para primeiro dígito normalizado) (D) Valor de cada um dos s-1 digitos restantes: Bs-1 (E) representação especial para Zero: + 1 Para este exemplo, temos: 2 ((3 - 4) + 1) (8 - 1) 84-1 + 1 = número que podem ser representados (quantidade de padrões). 37 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Exemplo de Ponto Flutuante: – – – – – Menor número: 1/8 Maior número: 7/4 Menor gap: 1/32 Maior gap: ¼ Quantidades de números representáveis: 33 38 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores O erro relativo é aproximadamente o mesmo para todos os números número Se pegarmos a razão entre o maior gap com o maior número e comparar com a razão do menor gap com o menor número, teremos o mesmo valor. 39 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Conversão de números – – – : – – Converter (9.375 10-2)10 na base 2 da notação científica Tirar a notação científica: .09275 Converter em notação binária .09375 .1875 2 2 = = 0.1875 0.375 .375 2 = 0.75 .75 2 = 1.5 .5 2 = 1.0 Portanto: (.09375)10 = (.00011)2. Finalmente converter para a base 2 normalizada: .00011 = .00011 20 = 1.1 2-4 40 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Padrão IEEE-754 de ponto flutuante 41 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Exemplo do padrão IEEE 754 42 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Exemplo de uso do padrão IEEE 754 – Representar -12.625 na precisão simples do formato IEEE-754: Passo1: Converter para a base 2: -12.62510 = -1100.1012 Passo2: Normalizar: -1100.1012 = -1.1001012 23 Passo3: Preencher os campos de bits: – Sinal negativo, usar 1 – Expoente em excesso de 127 (não usar 128). O expoente é representado por um inteiro náo sinalizado: 3 + 127 = 130. – O bit 1 mais significativo é escondido. 1 1000 0010 . 1001 0100 0000 0000 0000 000 43 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores De acordo com exercito norte americano, as falhar dos mísseis patriot, foram as perdas de precisão da conversão de 24 bits de inteiros para 24 bits de ponto flutuante. 44 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores Tabela ASCII – – A possui o valor de 41h. Para converter em maiuscula, basta somar 20h O caracter 5 tem o valor de 35h, para converter para numero, basta subtrair de 30h. 45 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Arquitetura de Computadores 46 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Unicode 47 Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior