41
REPRESENTAÇÃO DE DADOS Prof. Maicon A. Sartin [email protected]

REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

Embed Size (px)

Citation preview

Page 1: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

REPRESENTAÇÃO DE DADOS

Prof. Maicon A. [email protected]

Page 2: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 3: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 4: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 5: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 6: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 7: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 8: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 9: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 10: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 11: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 12: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 13: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 14: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 15: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 16: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

Representação de Dados

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

Page 17: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 18: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 19: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

Caso Particular na base 2 (binária)

Page 20: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 21: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 22: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 23: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 24: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 25: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 26: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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)

Page 27: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 28: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 29: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 30: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 31: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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?

Page 32: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 33: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 34: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

?

Page 35: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 36: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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 = ?

Page 37: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 38: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 39: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 40: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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

Page 41: REPRESENTAÇÃO DE DADOS - colider.unemat.brmaicon/files/aoc/aula2.pdf · 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

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.