47
1 Arquitetura de Computadores Representação de dados

1 Arquitetura de Computadores Representação de dados

Embed Size (px)

Citation preview

Page 1: 1 Arquitetura de Computadores Representação de dados

1

Arquitetura de Computadores

Representação de dados

Page 2: 1 Arquitetura de Computadores Representação de dados

2Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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)

Page 3: 1 Arquitetura de Computadores Representação de dados

3Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 4: 1 Arquitetura de Computadores Representação de dados

4Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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, …

Page 5: 1 Arquitetura de Computadores Representação de dados

5Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 6: 1 Arquitetura de Computadores Representação de dados

6Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Ex: Sistema decimal

2622 = 2000 + 600 + 20 + 2

2000 = 2x1000 = 2x103

600 = 6x100 = 6x102

20 = 2x10 = 2x101

2 = 2x1 = 2x100

Page 7: 1 Arquitetura de Computadores Representação de dados

7Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 8: 1 Arquitetura de Computadores Representação de dados

8Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 9: 1 Arquitetura de Computadores Representação de dados

9Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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 (5, 4, 1)– m = qtd algarismos fracionários = 2 (2, 5)

Page 10: 1 Arquitetura de Computadores Representação de dados

10Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 11: 1 Arquitetura de Computadores Representação de dados

11Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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)

Page 12: 1 Arquitetura de Computadores Representação de dados

12Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 13: 1 Arquitetura de Computadores Representação de dados

13Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Figura retirada do livro Introdução a Arquitetura de Computadores, Miles J. Murdocca

Page 14: 1 Arquitetura de Computadores Representação de dados

14Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 15: 1 Arquitetura de Computadores Representação de dados

15Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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)

Page 16: 1 Arquitetura de Computadores Representação de dados

16Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Conversão de bases

Page 17: 1 Arquitetura de Computadores Representação de dados

17Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 18: 1 Arquitetura de Computadores Representação de dados

18Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Parte Inteira

Page 19: 1 Arquitetura de Computadores Representação de dados

19Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Parte Fracionária

Page 20: 1 Arquitetura de Computadores Representação de dados

20Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 21: 1 Arquitetura de Computadores Representação de dados

21Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 22: 1 Arquitetura de Computadores Representação de dados

22Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Base K para Base 10:

– Ex 1: 100011,012 = ( ) 10

100011,012 = 1 25 + 0 24 + 0 23 + 0 22 + 1 21 + 1 20 +

0 2-1 + 1 2-2 = 32 + 2 + 1 + 0,25 = 35,2510

– Ex 2: 6738 = ( ) 10

6738 = 6 82 + 7 81 + 3 80 = 384 + 56 + 3 = 44310

Page 23: 1 Arquitetura de Computadores Representação de dados

23Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Soma Binária

Page 24: 1 Arquitetura de Computadores Representação de dados

24Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 25: 1 Arquitetura de Computadores Representação de dados

25Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 26: 1 Arquitetura de Computadores Representação de dados

26Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 27: 1 Arquitetura de Computadores Representação de dados

27Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 28: 1 Arquitetura de Computadores Representação de dados

28Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 29: 1 Arquitetura de Computadores Representação de dados

29Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 30: 1 Arquitetura de Computadores Representação de dados

30Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Complemento de 9 e 10

Page 31: 1 Arquitetura de Computadores Representação de dados

31Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Page 32: 1 Arquitetura de Computadores Representação de dados

32Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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):

Page 33: 1 Arquitetura de Computadores Representação de dados

33Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 34: 1 Arquitetura de Computadores Representação de dados

34Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 35: 1 Arquitetura de Computadores Representação de dados

35Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 36: 1 Arquitetura de Computadores Representação de dados

36Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 37: 1 Arquitetura de Computadores Representação de dados

37Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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).

Page 38: 1 Arquitetura de Computadores Representação de dados

38Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 39: 1 Arquitetura de Computadores Representação de dados

39Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 40: 1 Arquitetura de Computadores Representação de dados

40Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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 2 = 0.1875

.1875 2 = 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

Page 41: 1 Arquitetura de Computadores Representação de dados

41Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Padrão IEEE-754 de ponto flutuante

Page 42: 1 Arquitetura de Computadores Representação de dados

42Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Exemplo do padrão IEEE 754

Page 43: 1 Arquitetura de Computadores Representação de dados

43Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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

Page 44: 1 Arquitetura de Computadores Representação de dados

44Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 45: 1 Arquitetura de Computadores Representação de dados

45Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

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.

Page 46: 1 Arquitetura de Computadores Representação de dados

46Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Page 47: 1 Arquitetura de Computadores Representação de dados

47Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Unicode