Representação de Dados Professor: Airton Ribeiro de Sousa E-mail: airton.ribeiros@gmail.com 1
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 (Valor) (Ex: 1, 7, 5+2, 90%, ) NÚMERO: ideia que os símbolos representam. Um número pode ser representado por diversos numerais (Ex: 5 = 7 2 = 4 + 1 = 10 / 2) 2
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
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) 4
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, 5
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 6
Ex: Sistema Decimal 2622 = 2000 + 600 + 20 + 2 2000 = 2X1000 = 2X10 3 600 = 6X100 = 6X10 2 20 = 2X10 = 2X10 1 2 = 2X1 = 2X10 0 7
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 8
Representação Numérica Para Computador: Toda Informação Humana Pode Ser Bem Representada Com Zeros e Uns. Os Seres Humanos Tem Facilidades Para Entender O Formato Decimal As Máquinas Tem Facilidades Para Entender o Formato Numérico Binário 9
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) 10
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. 11
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. 12 Figura retirada do livro Introdução a Arquitetura de Computadores, Miles J. Murdocca
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. 13
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) 14
Soma binária 15
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 magnitude Complemento de um Complemento de dois Excesso de 4. 16
Magnitude de sinal Basta colocar o bit mais significativo com o sinal 1, para representar um número negativo Exemplo: +25 10 = 00011001 2-25 10 = 10011001 2 Duas representações de zeros. Ex: 00000000 e 10000000 Intervalos de números de +127 e 127 em decimal 17
Complemento de um Os bits são trocados onde os zeros se tornam um e os uns se tornam zeros. Exemplo: +25 10 = 00011001 2-25 10 = 11100110 2 Possui duas representações de zeros: +0 = 00000000 2, -0 = 11111111 2. Faixa de valores: +127 10, e o menor número -127 10, usando 8 bits de representação 18
Complemento de dois Neste modo de representação é executado o complemento de um, mais a somatória de 1. Exemplo: +25 10 = 00011001 2-25 10 = 11100111 2 Apenas uma representação numérica do zero: +0 = 00000000 2, -0 = 00000000 2. Faixa de valores: +127 10, e o menor número é -128 10, para 8 bits. 19
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 10 23 ): 20
Normalização Um número na base 10, digamos 254 pode ser representada em ponto flutuante na forma de 254 x 10 0, ou equivalentemente: 25.4 x 10 1, ou 2.54 x 10 2, ou.254 x 10 3, ou.0254 x 10 4, 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 10 3. 21
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 10 3 = 254 10. Usando o método já conhecido, temos 254 10 = 376 8 0 : 254/8 = 31 r 6 31/8 = 3 r 7 3/8 = 0 r 3 Passo 2, normalizar: 376 8 0 =.376 8 3. 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: 22 0 111. 011 111 110 000
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. 23