REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · Representa números quase...

Preview:

Citation preview

REPRESENTAÇÃO DE DADOS

Prof. Maicon A. Sartinmapsartin@gmail.com

Representação de Dados

Sumário Introdução a Representação de DadosComplemento a 1Aritmética em C1Complemento a 2Aritmética em C2Aritmética em C1 – Base BináriaAritmética em C2 – Base BináriaAritmética em Sinal e MagnitudeRepresentação de Dados (Ponto Flutuante)

Representação de Dados

Definições importantes para numeros bináriosbit – 1 dígito binário Nibble – 4 dígitos bináriosByte – 8 dígitos bináriosMSB (most significant bit) – bit mais significativoLSB (least significant bit) – bit menos significativo

Tipos de Dados Numéricos Ponto Fixo (Inteiros) Ponto Flutuante (Reais ou Fracionários) BCD (Representação decimal codificada em binário)

Alfanuméricos Letras, números e símbolos (Codificados em ASCII)

Representação de Dados

Representação de números inteiros (Computacionalmente) Números inteiros positivos e negativos

Representação por sinal e magnitude Representação em complemento

Facilita e torna mais eficiente a manipulação de operações aritméticas em computadores

Representação de Dados

Dados Numéricos Os números podem ser positivos ou negativos Em binário são representados bit 0 – sinal positivo bit 1 – sinal negativo

Valor decimal Valor binário com 8 bits (7 + bit de sinal)

+9 00001001 (bit inicial 0 significa positivo)

-9 10001001 (bit inicial 1 significa negativo)

+127 01111111 (bit inicial 0 significa positivo)

-127 11111111 (bit inicial 1 significa negativo)

Representação de Dados

Representação em sinal e magnitude Representação binária com um bit (MSB) p/ o

sinal Magnitude é o valor absoluto

Ex. 0100 = +4 1100 = -4

100 é a magnitude ou valor absoluto

Sinal Magnitude

Representação de Dados

Sinal-módulo (bit de sinal); (método mais simples) Reserva-se um bit à esquerda do número

– Posição do algarismo mais significativo

Representação de Números em Complemento de 1(base-1 ou C1)Complemento é a diferença entre cada algarismo do número e o maior algarismo possível na base

Vantagem:• subtração entre dois números pode ser substituída pela sua

soma em complemento. A representação de números positivos em complemento não tem

alteraçãoA representação de números negativos é obtida por:

(base - 1) menos cada algarismo do número

  Ex.1  Ex.2   Ex.3(base -1) ---> 999 FFFF 1111 -297 - 3A7E -0011

Complemento---> 702  C581 1100 (C1)

ARITMÉTICA EM COMPLEMENTO DE 1 (BASE - 1)

Soma-se os números e o número negativo estará representado por seu complemento

Sinal e Complemento de 1 VerificaçãoMagnitude  (base-1)

-418 581 (C1) 999 +123 +123 -295 -295  704 704

Base Hexadecimal : 3142-54A7

999-418 581 (C1)

ARITMÉTICA EM COMPLEMENTO DE 1 (BASE - 1)

Exercícios de Fixação – Faça o C1 dos números:

• -01010112

• -76510

• -1B816

– Resolva a aritmética em C1 Decimal Hexadecimal

- 234 - 167 - 3AB+132 +360 +18A

REPRESENTAÇÃO DE NÚMEROS NEGATIVOS EM COMPLEMENTO DE 2 (C2)

Calcula-se o complemento a (base -1) e depois soma-se 1 ao resultado

EX.1  Ex.2 Ex.3

999 FFFF 1111 -297 - 3A7E -0011

702  C581 1100 (C1) +0001 +0001 +0001

703 C582 1101 (C2)

Soma-se os números e o número negativo será representado pelo seu complemento a base (C2)

Sinal e Cálculo C2 C2 Verificaçãomagnitude 

- 418 999 582 999 +123 - 418 + 123 -295 - 295 581 705 (C2) 704 +001 +001

582 705

… e a base binária ?

ARITMÉTICA EM COMPLEMENTO DE 2 (C2)

ARITMÉTICA EM COMPLEMENTO DE 2 (C2)

Exercícios de Fixação em C2– Faça o C2 dos números:

• 0101011• 765• 1B8

– Resolva a aritmética em C2- 234 - 167 - 3AB+132 +360 +18A

Representação de Números Binários

Binário Inteiro positivo

Sinal-magnitude C 1 C 2

0000 0 +0 0 0

0001 1 1 1 1

0010 2 2 2 2

0011 3 3 3 3

0100 4 4 4 4

0101 5 5 5 5

0110 6 6 6 6

0111 7 7 7 7

1000 8 -0 -7 -8

1001 9 -1 -6 -7

1010 10 -2 -5 -6

1011 11 -3 -4 -5

1100 12 -4 -3 -4

1101 13 -5 -2 -3

1110 14 -6 -1 -2

1111 15 -7 -0 -1

Representação de Dados

Representação do limite dos números binários de 5 bits em complemento de 2

Caso Particular na base 2 (binária)

Para se obter o complemento tem que ser feito:

– Complemento a 1• Inverte o número binário

– Complemento a 2• Soma 1 no complemento a 1

Complemento de 2Números negativos devem estar representados em

complemento de 2

Quando a soma de dois números de n algarismos resulta em um valor com n+1 algarismos

–Overflow (transbordo de capacidade)

Caso Particular na base 2 (binária)

Caso Particular na base 2 (binária)

Algoritmo da operação de adição em Complemento a 2

1.Somar os dois números, bit a bit, inclusive o bit do sinal2.Desprezar o último “vai 1” (se houver)3.Se, simultaneamente, ocorrer “vai 1” p/ o bit de sinal e p/

fora do número, ou se ambos não ocorrerem, o resultado está correto

4.Se ocorrer apenas um dos dois “vai 1” o resultado está incorreto e ocorreu um overflowO overflow somente ocorre se ambos os números tiverem o

mesmo sinal (pos ou neg) e o resultado tiver sinal oposto ao dos números

Caso Particular na base 2 (binária)

Algoritmo da operação de adição em Complemento a 2

1.Existem 4 possibilidades indicadas no algoritmo1.Carry p/ o bit de sinal e para fora do resultado (correto)

2.Nenhuma ocorrência de carry (correto)

3.Carry p/ o bit de sinal (incorreto)

4.Carry p/ o bit de fora do resultado (incorreto)

Caso Particular na base 2 (binária)

1. Carry p/ o bit de sinal e para fora do númeroSomar 1100 e 1101 representados em C2 (Nos Neg.)

Caso Particular na base 2 (binária)

2. Nenhuma ocorrência de carrySomar 0001 e 0101 representados em C2 (Nos Pos.)Quando os números são positivos para descobrir o valor em

decimal apenas converte-se as bases

0001 (+1)+ 0101 (+5)

Caso Particular na base 2 (binária)

Não há nenhum carry

3. Carry p/ o bit de sinalSomar 0101 e 0110 representados em C2 (Nos Pos.)

1 Carry para o bit de sinal e sem carry para fora

0101 (+5)+ 0110 (+6)

Caso Particular na base 2 (binária)

4. Carry p/ o bit de fora do resultadoSomar 1010 e 1101 representados em C2 (Nos Neg.)

1 Carry para o bit de fora do número, este é desprezado

1011 (-5)+ 1100 (-4)

Caso Particular na base 2 (binária)

Exercícios – Faça a aritmética em complemento de 2 e verifique em qual das 4 possibilidades estão os resultados. Os números negativos já estão em complemento de 2. 0001 1101 0101 1001+ 0101 +1100 + 0100 +1010

Exercícios – Faça o complemento de 2 quando necessário e resolva a aritmética em complemento de 2 com a verificação dos resultados.+2 -6 -10 -3 +4 -2

Caso Particular na base 2 (binária)

Representação de Dados

E os outros números Números muito grandes? (segundos/século) 3.155.760.000 (3,155760000 x 109)

Números muito pequenos? (diâmetro atômico) 0,0000000110 (1,010 x 10-8) cm

Racionais (padrão repetitivo) 2/3 (0,666666666. . .)

Irracionais 21/2 (1,414213562373. . .)

Todos representados em notação científica

Representação de Dados

Notação Científica

- Forma Normalizada: sem zeros à frente- Alternativas para se representar 1/1.000.000.000

Normalizada: 1,0 x 10-9

Não normalizada: 0,1 x 10-8 ou 10,0 x 10-10

Representação de Dados

Notação Científica para números binários

A aritmética do computador que suporta isto é chamada de ponto flutuante representa números onde o ponto binário não é fixo, como é o

caso dos inteiros.

Declaramos tais variáveis como float em C.

2-1

Representação de Dados

Ponto Flutuante Formato Normal:

± M x B ±edois

Bit de Sinal = ± Expoente = e – 1 bit p/ sinal e 6 bits p/ Magnitude Mantissa = M – Normalizada Base de exponenciação = B

Representa números tão pequenos quanto2,0 x 10-38 até tão grande quanto 2,0 x 1038

Expoente Mantissa ou significando ou Fração

Bit de SinalBit de Sinal

8 bits8 bits 23 bits23 bits

Representação de Dados

Ponto Flutuante Se o resultado for muito grande? (> 2,0x1038 )Overflow!Overflow => Expoente maior do que pode ser

representado com os 8 bits do campo Expoente Se for muito pequeno? (< 2,0x10-38 )Underflow!Underflow => Expoente negativo maior do que pode ser

representado com os 8 bits do campo ExpoenteComo reduzir as chances de overflow ou underflow?

Representação de Dados

Ponto Flutuante de Precisão Dupla

Precisão Dupla (vs. Precisão Simples)– Padrão IEEE 754 Variável C declarada como double Representa números quase tão pequenos quanto

2,0 x 10-308 e quase tão grandes como 2,0 x 10308

Mas a vantagem principal é a maior precisão devido a um significando maior.

Expoente Mantissa ou significando ou Fração

Bit de SinalBit de Sinal

11 bits11 bits 52 bits52 bits

Representação de Dados

Ponto Flutuante Formatos de Representações em Ponto Flutuante

SISTEMA Total de bits Sinal Expoente FraçãoIEEE 754 – precisão simples 32 1 8 23

IEEE 754 – precisão dupla 64 1 11 52

IEEE 754 – precisão estendida

80 1 15 64

Representação de Ponto Flutuante IEEE-754 - Exemplos

?

Representação de Dados

Um exemplo de operação com Ponto Flutuante Multiplicar 1,110×1010 e 9,200×10-5

Passo 1: Somar o expoente. 10+(-5)=5 Passo 2: Multiplicar as mantissas:

1,110 x 9,200=10,212000 Passo 3: Normalizar o valor, e arredondar para o número de

dígitos da mantissa. 10,212 x 105 = 1,0212 x 106

Passo 5: Definir o sinal, com base nos sinais dos operandos: +1,021 x 106

Representação de Dados

Exemplo de Ponto Flutuante - Binário Números com fração Passo 1: Somar o expoente. 10+(-5)=5 6,62510

– Parte inteira: 610 = 1102

– Parte fracionária: 0,62510 = ?

Representação de Dados

Separar a parte inteira do resultado Multiplicar a parte fracionária por 2 até obter 0 ou até

chegar a um limite de bits

– 0,625 x 2 = 1,25

– 0,25 x 2 = 0,5

– 0,5 x 2 = 1,0

Representação de Dados

Separar a parte inteira do resultado Multiplicar a parte fracionária por 2 até obter 0 ou até

chegar a um limite de bits

– 0,625 x 2 = 1,25– 0,25 x 2 = 0,5– 0,5 x 2 = 1,0

110,1012

Representação de Dados

2-1 = 0,52-2 = 0,252-3 = 0,1252-4 = 0,06252-5 = 0,031252-6 = 0,0156252-7 = 0,00781252-8 = 0,003906252-9 = 0,00195312

20 = 121 = 222 = 423 = 824 = 1625 = 3226 = 6427 = 12828 = 256

Potências de 2

Representação de Dados

Converta os valores abaixo para a base 2:– 2,125

10

Converta os valores abaixo para a base 10:– 11,11012

Referências

STALLINS, W. “Arquitetura e Organização de Computadores – Projeto para o desempenho” . Prentice Hall, 2003. pp. 289-333.

TANEMBAUM, A. S. “Organização Estruturada de Computadores”. LTC, 2001. pp. 381-391.

MONTEIRO, M. A. “Introdução à Organização de Computadores”. LTC, 2002. pp. 39-57;272-315.

WANDERLEY, Juliana F. C. “Ponto Flutuante”. Curso de OAC na Graduação da UNB, 2002.

Adalberto. “Ponto Flutuante”. Curso de AC I na Graduação da UCB, 2011.

Recommended