ARQUITETURA DE COMPUTADORES

Representação de Dados

Professor: Airton Ribeiro de Sousa E-mail: [email protected]

•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 (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

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

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) •4

ARQUITETURA DE COMPUTADORES • 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

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

•6

ARQUITETURA DE COMPUTADORES • Ex: Sistema Decimal

• 2622

= 2000 + 600 + 20 + 2

• 2000

= 2X1000 = 2X103

• 600

= 6X100 = 6X102

• 20

= 2X10

= 2X101

•2

= 2X1

= 2X100

•7

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 •8

ARQUITETURA DE COMPUTADORES • 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

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)

•10

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.

•11

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.

•12

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

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.

•13

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)

•14

ARQUITETURA DE COMPUTADORES • Soma binária

•15

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 magnitude • Complemento de um • Complemento de dois • Excesso de 4.

•16

ARQUITETURA DE COMPUTADORES • Magnitude 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

•17

ARQUITETURA DE COMPUTADORES • Complemento de um

• Os bits são trocados onde os zeros se tornam um e os uns se tornam zeros. • Exemplo: +2510 = 000110012 -2510 = 111001102

• Possui duas representações de zeros: +0 = 000000002, -0 = 111111112. • Faixa de valores: +12710, e o menor número -12710, usando 8 bits de representação •18

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.

•19

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

•20

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. •21

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

•22

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.

•23