Upload
doanhanh
View
233
Download
0
Embed Size (px)
Citation preview
REPRESENTAÇÃO DE DADOS
Prof. Maicon A. [email protected]
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.