sistemas numéricos e a representação interna dos dados no...

31
Sistemas numéricos e a Sistemas numéricos e a Representação Interna dos Dado Representação Interna dos Dado no Computador no Computador Ricardo Azambuja Silveira Ricardo Azambuja Silveira INE-CTC-UFSC INE-CTC-UFSC E-Mail: [email protected] E-Mail: [email protected] URL: http://www.inf.ufsc.br~silveira URL: http://www.inf.ufsc.br~silveira Material elaborado pelo prof Roberto Willrich Material elaborado pelo prof Roberto Willrich

Upload: truongdiep

Post on 08-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

Sistemas numéricos e a Sistemas numéricos e a Representação Interna dos Dados Representação Interna dos Dados no Computadorno Computador

Ricardo Azambuja SilveiraRicardo Azambuja SilveiraINE-CTC-UFSCINE-CTC-UFSCE-Mail: [email protected]: [email protected]: http://www.inf.ufsc.br~silveiraURL: http://www.inf.ufsc.br~silveiraMaterial elaborado pelo prof Roberto WillrichMaterial elaborado pelo prof Roberto Willrich

Page 2: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/062/32

Tipos de dados tratados pelo computador Tipos de dados tratados pelo computador

• Dados e as instruções armazenados em memória Dados e as instruções armazenados em memória – são codificados sob a forma de sinais elétricos do tipo ligado são codificados sob a forma de sinais elétricos do tipo ligado

e desligadoe desligado• representado pelos números 1 e 0representado pelos números 1 e 0

• sistema bináriosistema binário

– cada unidade de informação é chamada de bitcada unidade de informação é chamada de bit• abreviação de Binary digitabreviação de Binary digit

Page 3: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/063/32

Tipos de dados tratados pelo computador Tipos de dados tratados pelo computador

• Unindo dois ou mais bitsUnindo dois ou mais bits– Um bit pode representar dois valores: 1 ou 0, ou então Um bit pode representar dois valores: 1 ou 0, ou então

verdadeiro ou falsoverdadeiro ou falso– Pode-se unir dois ou mais bits para representar mais de dois Pode-se unir dois ou mais bits para representar mais de dois

valoresvalores• quantidade de valores representáveis por uma seqüência de n quantidade de valores representáveis por uma seqüência de n

bits é de 2bits é de 2nn

– Algumas strings de bits têm nomes próprio: Algumas strings de bits têm nomes próprio: • uma seqüência de 8 bits são chamados de uma seqüência de 8 bits são chamados de bytebyte

• uma seqüência de 4 bits é chamada de uma seqüência de 4 bits é chamada de nibblenibble• um grupo de 16 bits é chamado de um grupo de 16 bits é chamado de wordword• um grupo de 32 bits é chamado de um grupo de 32 bits é chamado de double worddouble word• um grupo de 64 bits é chamado de um grupo de 64 bits é chamado de quad wordquad word

Page 4: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/064/32

Tipos de dados tratados pelo computador Tipos de dados tratados pelo computador

• K = 1024K = 1024– Na vida cotidiana e na física, o "k" vale 1000 Na vida cotidiana e na física, o "k" vale 1000

• 1 km = 1000 metros 1 km = 1000 metros • 1 kg = 1000 gramas 1 kg = 1000 gramas • 1 kV = 1000 volts 1 kV = 1000 volts

– Número 1024 foi o escolhido para representar o "k" da Número 1024 foi o escolhido para representar o "k" da computaçãocomputação

• por razões de simplificação de hardwarepor razões de simplificação de hardware

• M = 1024 KM = 1024 K– "M" normalmente vale 1.000.000, na computação vale: "M" normalmente vale 1.000.000, na computação vale:

• 1 M = 1024 k = 1024x1024 = 1.048.5761 M = 1024 k = 1024x1024 = 1.048.576

• G = 1024 MG = 1024 M– "G" que normalmente vale 1 bilhão, na computação vale"G" que normalmente vale 1 bilhão, na computação vale

• 1 G = 1024 M = 1024x1024x1024 = 1.073.741.8241 G = 1024 M = 1024x1024x1024 = 1.073.741.824

Page 5: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/065/32

Representação de Caracteres Representação de Caracteres

• Um caractere normalmente é representado por um Um caractere normalmente é representado por um bytebyte– maioria dos códigos alfanuméricos representam caractere maioria dos códigos alfanuméricos representam caractere

através de um byteatravés de um byte– código ASCII a letra 'A' é representada pelo byte “0100 código ASCII a letra 'A' é representada pelo byte “0100

0001“0001“– uma seqüência de caracteres é expressa por uma cadeia de uma seqüência de caracteres é expressa por uma cadeia de

bytes sucessivosbytes sucessivos– Nem todos os tipos de códigos utilizam os 8 bits de um byte Nem todos os tipos de códigos utilizam os 8 bits de um byte

para a representação de caracterespara a representação de caracteres

Page 6: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/066/32

Representação de Caracteres Representação de Caracteres

• Código de 7 bits (ASCII)Código de 7 bits (ASCII)– apareceu com as linguagens de alto nívelapareceu com as linguagens de alto nível

Page 7: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/067/32

Representação de Caracteres Representação de Caracteres

• ASCII EstendidoASCII Estendido– caracteres extras representam caracteres de línguas mortas caracteres extras representam caracteres de línguas mortas

e caracteres especiais para desenhas figurese caracteres especiais para desenhas figures

Page 8: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/068/32

Representação Interna de Números Representação Interna de Números

• Representação de Números InteirosRepresentação de Números Inteiros– Representação de números não sinalizadosRepresentação de números não sinalizados

• utiliza-se normalmente o valor do próprio número binárioutiliza-se normalmente o valor do próprio número binário– número 6 é representado por 0101 número 6 é representado por 0101

– número 12 é representado por 1100número 12 é representado por 1100

– Representação de números sinalizadosRepresentação de números sinalizados• módulo e sinal (MS)módulo e sinal (MS)

• complemento de 1 (C-1)complemento de 1 (C-1)

• complemento de 2 (C-2) complemento de 2 (C-2)

• excesso de 2 elevado a (N-1)excesso de 2 elevado a (N-1)

Page 9: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/069/32

Representação Interna de Números Representação Interna de Números

• Módulo e Sinal (MS)Módulo e Sinal (MS)– Bit que está situado mais à esquerda representa o sinalBit que está situado mais à esquerda representa o sinal

• valor será 0 para o sinal + e 1 para o sinal -valor será 0 para o sinal + e 1 para o sinal -

– Bits restantes (N-1) representam o módulo do númeroBits restantes (N-1) representam o módulo do número– ExemploExemplo

• supondo que exista a limitação de 8 bits (N=8)supondo que exista a limitação de 8 bits (N=8)– valor 00101010 representa o número +42 valor 00101010 representa o número +42

– valor 10101010 representa o número -42valor 10101010 representa o número -42

– Amplitude (faixa) de representação para N bits Amplitude (faixa) de representação para N bits • -2-2N-1N-1+1 +1 ≤≤ X X ≤≤ 2 2N-1N-1-1-1

• Para 8 bits (byte): -127 Para 8 bits (byte): -127 ≤≤ X X ≤≤ 127 127

• Para 16 bits (word): -32767 Para 16 bits (word): -32767 ≤≤ X X ≤≤ 32767 32767

• Para 32 bits (double word): -2147483647 Para 32 bits (double word): -2147483647 ≤≤ X X ≤≤ 2147483647 2147483647

Page 10: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0610/32

Representação Interna de Números Representação Interna de Números

• Módulo e Sinal (MS)Módulo e Sinal (MS)– Vantagem deste sistema Vantagem deste sistema

• possuir faixa simétricapossuir faixa simétrica

– DeficiênciasDeficiências• possui duas representações para o número 0possui duas representações para o número 0

– para 8 bits: 00000000 (+0) e 1000000 (-0)para 8 bits: 00000000 (+0) e 1000000 (-0)

Page 11: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0611/32

Representação Interna de Números Representação Interna de Números

• Complemento de 1 (C-1)Complemento de 1 (C-1)– Utiliza o bit mais à esquerda para o sinalUtiliza o bit mais à esquerda para o sinal

• 0 ao sinal + e o 1 ao sinal -0 ao sinal + e o 1 ao sinal -

– Números positivosNúmeros positivos• N-1 bits da direita representam o módulo (como no MS)N-1 bits da direita representam o módulo (como no MS)

– Números negativosNúmeros negativos• obtidos pelo complemento de todos os seus dígitos (trocando 0 obtidos pelo complemento de todos os seus dígitos (trocando 0

por 1 e vice-versa) incluindo o bit de sinalpor 1 e vice-versa) incluindo o bit de sinal

– ExemploExemplo• supondo que exista a limitação de 8 bits (N=8) supondo que exista a limitação de 8 bits (N=8)

• valor 00101010 representa o número +42 valor 00101010 representa o número +42

• valor 11010101 representa o número -42valor 11010101 representa o número -42

Page 12: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0612/32

Representação Interna de Números Representação Interna de Números

• Complemento de 1 (C-1)Complemento de 1 (C-1)– Mesma faixa de representação para N dígitos do método MCMesma faixa de representação para N dígitos do método MC

• -2-2N-1N-1+1 +1 ≤≤ X X ≤≤ 2 2N-1N-1-1-1

– DesvantagemDesvantagem• tem duas representações para o número 0tem duas representações para o número 0

– 00000000 (+0) e 11111111 (-0)00000000 (+0) e 11111111 (-0)

Page 13: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0613/32

Representação Interna de Números Representação Interna de Números

• Complemento de 2 (C-2)Complemento de 2 (C-2)– Utiliza o bit mais à esquerda para o sinalUtiliza o bit mais à esquerda para o sinal

• 0 ao sinal + e o 1 ao sinal -0 ao sinal + e o 1 ao sinal -

– Números positivosNúmeros positivos• N-1 dígitos da direita representam o módulo N-1 dígitos da direita representam o módulo

– Números negativosNúmeros negativos• executa-se o Complemento de 1: obtém-se o complemento de executa-se o Complemento de 1: obtém-se o complemento de

todos os bits do número positivo (trocando 0 por 1 e vice-todos os bits do número positivo (trocando 0 por 1 e vice-versa) incluindo o bit do sinalversa) incluindo o bit do sinal

• Ao resultado obtido soma-se 1 (em binário), desprezando-se o Ao resultado obtido soma-se 1 (em binário), desprezando-se o último transporte (se existir) último transporte (se existir)

– O mais utilizado para representar números negativosO mais utilizado para representar números negativos

Page 14: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0614/32

Representação Interna de Números Representação Interna de Números

• Complemento de 2 (C-2)Complemento de 2 (C-2)

Page 15: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0615/32

Representação Interna de Números Representação Interna de Números

• Complemento de 2 (C-2)Complemento de 2 (C-2)– Faixa de representação é assimétrica (inconveniente)Faixa de representação é assimétrica (inconveniente)

• -2-2N-1N-1 ≤≤ X X ≤≤ 2 2N-1N-1-1-1• Para 8 bits (byte): -128 Para 8 bits (byte): -128 ≤≤ X X ≤≤ 127 127• Para 16 bits (word): -32768 Para 16 bits (word): -32768 ≤≤ X X ≤≤ 32767 32767• Para 32 bits (double word): -2147483648 Para 32 bits (double word): -2147483648 ≤≤ X X ≤≤ 2147483647 2147483647

– VantagemVantagem• uma única representação para o número 0uma única representação para o número 0• Para 8 bits, teremos: 00000000Para 8 bits, teremos: 00000000

Page 16: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0616/32

Representação Interna de Números Representação Interna de Números

• Excesso de 2 elevado a (N-1)Excesso de 2 elevado a (N-1)– Não utiliza nenhum bit para o sinalNão utiliza nenhum bit para o sinal

• todos os bits representam um módulo ou valortodos os bits representam um módulo ou valor• valor corresponde ao número representado mais um excesso, valor corresponde ao número representado mais um excesso,

que para N bits é igual a 2que para N bits é igual a 2N-1N-1

– Exemplo (para 8 bits o excesso é 128 ( 2Exemplo (para 8 bits o excesso é 128 ( 277 = 128 )) = 128 ))• número 10 é representado por 10+128 = 138 (10001010)número 10 é representado por 10+128 = 138 (10001010)• número -10 é representado por -10+128 = 118 (01110110)número -10 é representado por -10+128 = 118 (01110110)

– Número 0 tem uma única representação, que para 8 bits Número 0 tem uma única representação, que para 8 bits corresponde a: 0+128 = 128 (10000000)corresponde a: 0+128 = 128 (10000000)

– Faixa de representação é assimétrica (inconveniente) Faixa de representação é assimétrica (inconveniente) • -2-2N-1N-1 ≤≤ X X ≤≤ 2 2N-1N-1-1-1

– É interessante observar que todo o número representado É interessante observar que todo o número representado em excesso tem representação igual aquela da em excesso tem representação igual aquela da representação em Complemento de 2, exceto que o bit de representação em Complemento de 2, exceto que o bit de sinal é invertidosinal é invertido

Page 17: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0617/32

Representação Interna de Números Representação Interna de Números

• Números Inteiros (Ponto Fixo ou Vírgula Fixa)Números Inteiros (Ponto Fixo ou Vírgula Fixa)– Quatro maneiras de representar números com vírgula fixaQuatro maneiras de representar números com vírgula fixa

• binário puro, (como visto anteriormente)binário puro, (como visto anteriormente)

• decimal, decimal,

• decimal não compactado, decimal não compactado,

• decimal compactado.decimal compactado.

Page 18: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0618/32

Representação Interna de Números Representação Interna de Números

• Vírgula fixa: Vírgula fixa: Decimal não Compactado Decimal não Compactado – Número é armazenado com um byte para cada um de seus Número é armazenado com um byte para cada um de seus

algarismosalgarismos• quarteto da esquerda contém quatro 1's (bits de zona)quarteto da esquerda contém quatro 1's (bits de zona)• quarteto da direita contém o algarismo em BCD (Binary-Coded quarteto da direita contém o algarismo em BCD (Binary-Coded

Display - codificado em binário)Display - codificado em binário)– número entre 0 e 9 (denominados bits de dígito)número entre 0 e 9 (denominados bits de dígito)

• quarteto da esquerda do último algarismo do número dado quarteto da esquerda do último algarismo do número dado representa o sinalrepresenta o sinal

– 1100 (C) para o sinal + 1100 (C) para o sinal +

– 1101 (D) para o sinal -1101 (D) para o sinal -

– ExemplosExemplos• representação do número 1234 é 11110001 11110010 representação do número 1234 é 11110001 11110010

11110011 1100010011110011 11000100• representação do número -2345 é 11110010 11110011 representação do número -2345 é 11110010 11110011

11110100 1101010111110100 11010101

Page 19: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0619/32

Representação Interna de Números Representação Interna de Números

• Vírgula fixa: Decimal Compactado Vírgula fixa: Decimal Compactado – Cada dígito é representado num quarteto (sem bits de zona)Cada dígito é representado num quarteto (sem bits de zona)

• exceto o segundo quarteto da direita que representa o sinal exceto o segundo quarteto da direita que representa o sinal – 1100 (C) para o sinal + 1100 (C) para o sinal +

– 1101 (D) para o sinal -1101 (D) para o sinal -

– ExemplosExemplos• representação do número 1234 é 00000001 00100011 representação do número 1234 é 00000001 00100011

1100010011000100

• representação do número -2345 é 00000010 00110100 representação do número -2345 é 00000010 00110100 1101010111010101

Page 20: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0620/32

Representação Interna de Números Representação Interna de Números

• Ponto FlutuantePonto Flutuante– Números de ponto flutuante tem duas partesNúmeros de ponto flutuante tem duas partes

• primeira parte contem a primeira parte contem a fraçãofração (mantissa) (mantissa)

• segunda parte define a posição do ponto decimal (segunda parte define a posição do ponto decimal (expoenteexpoente))

• Exemplo: número decimal +6132,789 Exemplo: número decimal +6132,789 – Fração: +.6132789Fração: +.6132789

– Expoente: +04Expoente: +04

– +.6132789*10+.6132789*10+04+04

– Números decimais ponto flutuante são representados na Números decimais ponto flutuante são representados na forma Fx10forma Fx10EE

• apenas fração e expoente são representados em termos apenas fração e expoente são representados em termos computacionaiscomputacionais

• base 10 e o ponto decimal da fração são assumidos e não são base 10 e o ponto decimal da fração são assumidos e não são mostrados explicitamentemostrados explicitamente

Page 21: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0621/32

Representação Interna de Números Representação Interna de Números

• Ponto FlutuantePonto Flutuante– Número binário ponto flutuante Número binário ponto flutuante

• representado de uma maneira similarrepresentado de uma maneira similar– exceto que ele usa a base 2 para o expoenteexceto que ele usa a base 2 para o expoente

• Exemplo: número binário +1001.11 Exemplo: número binário +1001.11 – representado por uma fração de 8 bits (10011100) e um expoente representado por uma fração de 8 bits (10011100) e um expoente

de 6 bits (-000100)de 6 bits (-000100)

– Número flutuante normalizadoNúmero flutuante normalizado• se o dígito mais significativo da fração não é zerose o dígito mais significativo da fração não é zero

• exemplo: fração decimal 0.350 é normalizada, mas 0.0035 não exemplo: fração decimal 0.350 é normalizada, mas 0.0035 não éé

• números normalizados fornecem a melhor precisão para números normalizados fornecem a melhor precisão para números ponto flutuantenúmeros ponto flutuante

Page 22: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0622/32

Representação Interna de Números Representação Interna de Números

• Representação ponto flutuante: IEEE 754Representação ponto flutuante: IEEE 754– Define três formas de representação de ponto flutuante: Define três formas de representação de ponto flutuante:

• precisão simples (32 bits)precisão simples (32 bits)

• precisão dupla (64 bits) precisão dupla (64 bits)

• precisão estendida (80 bits)precisão estendida (80 bits)– destinado sobretudo para reduzir os erros de arredondamento em destinado sobretudo para reduzir os erros de arredondamento em

cálculoscálculos

– encontrados principalmente nas unidades de cálculo flutuanteencontrados principalmente nas unidades de cálculo flutuante

– Processador Pentium III suporta estas três precisõesProcessador Pentium III suporta estas três precisões

Page 23: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0623/32

Representação Interna de Números Representação Interna de Números

• Representação ponto flutuante: IEEE 754Representação ponto flutuante: IEEE 754– Formatos de simples (a) e dupla precisão (b) utilizam o Formatos de simples (a) e dupla precisão (b) utilizam o

binário para codificar a fração e o expoentebinário para codificar a fração e o expoente• Formato começa com um bit de sinal da fraçãoFormato começa com um bit de sinal da fração

– 0 para os números positivos 0 para os números positivos

– 1 para os números negativos1 para os números negativos

11 88 2323

11 1111 5252

sinalsinal ExpoenteExpoente FraçãoFração

(a)(a)

(b)(b)

Page 24: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0624/32

Representação Interna de Números Representação Interna de Números

• Representação ponto flutuante: IEEE 754Representação ponto flutuante: IEEE 754– ExpoenteExpoente

• codificado em excedente a 127 para a precisão simples e em codificado em excedente a 127 para a precisão simples e em excedente a 1023 para a precisão duplaexcedente a 1023 para a precisão dupla

– Precisão simples: variam de 2Precisão simples: variam de 2-126-126 a 2 a 2127127

– Precisão dupla: variam de 2Precisão dupla: variam de 2-1022-1022 a 2 a 210231023

» números tendo como expoente valores mínimos ou máximos números tendo como expoente valores mínimos ou máximos tem uma especificidade própriatem uma especificidade própria

11 88 2323

11 1111 5252

sinalsinal ExpoenteExpoente FraçãoFração

(a)(a)

(b)(b)

Page 25: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0625/32

Representação Interna de Números Representação Interna de Números

• Representação ponto flutuante: IEEE 754Representação ponto flutuante: IEEE 754– FraçãoFração

• codificada em binário de 23 ou 52 bits codificada em binário de 23 ou 52 bits • dita normalizada qdo primeiro bit que segue a vírgula vale 1dita normalizada qdo primeiro bit que segue a vírgula vale 1• considerando que o primeiro bit da fração é sempre igual a 1considerando que o primeiro bit da fração é sempre igual a 1

– fração IEEE compreende um bit pressuposto a 1 (bit escondido), fração IEEE compreende um bit pressuposto a 1 (bit escondido), após 23 ou 52 bits de valorapós 23 ou 52 bits de valor

– vírgula também é implícitavírgula também é implícita

11 88 2323

11 1111 5252

sinalsinal ExpoenteExpoente FraçãoFração

(a)(a)

(b)(b)

Page 26: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0626/32

Representação Interna de Números Representação Interna de Números

• Representação ponto flutuante: IEEE 754Representação ponto flutuante: IEEE 754– FraçãoFração

• valor numérico da fração para a precisão simplesvalor numérico da fração para a precisão simples

– 1*21*20 0 + b+ b2222*2*2-1 -1 + b+ b2121*2*2-2 -2 + b+ b2020*2*2-3 -3 + b+ b1919*2*2-4 -4 + b+ b1818*2*2-5 -5 + b+ b1717*2*2-6 -6 + b+ b1616*2*2-7 -7 + b+ b1515*2*2--

8 8 + b+ b1414*2*2-9 -9 + b+ b1313*2*2-10 -10 + b+ b1212*2*2-11 -11 + b+ b1111*2*2-12 -12 + b+ b1010*2*2-13 -13 + b+ b99*2*2-14 -14 + b+ b88*2*2-15 -15 + +

bb77*2*2-16 -16 + b+ b66*2*2-17 -17 + b+ b55*2*2-18-18+ b+ b44*2*2-19-19 + b + b3030*2*2-20 -20 + b+ b22*2*2-21 -21 + b+ b11*2*2-22 -22 + b+ b00*2*2-22-22

• números reais em precisão simples tem como valor: (-1)números reais em precisão simples tem como valor: (-1)SS * 2 * 2(E-127)(E-127) * (1,F) * (1,F)

11 88 2323

11 1111 5252

sinalsinal ExpoenteExpoente FraçãoFração

(a)(a)

(b)(b)

Page 27: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0627/32

Representação Interna de Números Representação Interna de Números

• Dado o número p=Dado o número p=11100000101000001010100..0 escrito em 10100..0 escrito em formato IEEE 754, obter a sua representação decimalformato IEEE 754, obter a sua representação decimal– Equação binária: p = (-1)S * 2Equação binária: p = (-1)S * 2(E-127) (E-127) * (1,F)* (1,F)– Inicia com Inicia com 11 -> É negativo -> É negativo

– Expoente -> Expoente -> 1000001010000010bb é 130 é 130dd, assim expoente = 130-, assim expoente = 130-127=3127=3dd

– Fração -> Fração -> 1,1,1010...01010...0bb = 1.625 = 1.625dd

– Portanto número é -1.625Portanto número é -1.625dd * 2 * 233 = -13 = -13

Page 28: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0628/32

Representação Interna de Números Representação Interna de Números

• Características dos números IEEE 754Características dos números IEEE 754

Aprox. 10-324Aprox. 10-45Menor número não normalizado

Aprox. 10-308 a 10+308Aprox. 10-38 a 10+38Escala de número decimaisAprox. 2+1024Aprox. 2+128Maior número normalizado

2-10222-126Menor número normalizado-1022 a +1023-126 a +127Variação do expoente

Excesso de 1023Excesso de 127Codificação do expoente6432Número total de bits5223Bits da fração118Bits do expoente11Bits de sinal

Precisão dupla Precisão simples

Page 29: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0629/32

Representação Interna de Números Representação Interna de Números

• Ponto flutuante IEEE 754: UnderflowPonto flutuante IEEE 754: Underflow– O que fazer quando o resultado de um cálculo é inferior ao O que fazer quando o resultado de um cálculo é inferior ao

menor número ponto flutuante normalizado que se pode menor número ponto flutuante normalizado que se pode representar? representar?

– Existem duas soluções:Existem duas soluções:• dizer que o número vale zero (arredondamento), sem outra dizer que o número vale zero (arredondamento), sem outra

indicaçãoindicação• gerar um desvio para causar uma ultrapassagem da borda gerar um desvio para causar uma ultrapassagem da borda

inferior (underflow)inferior (underflow)

– Nenhuma das abordagens acima é satisfatóriaNenhuma das abordagens acima é satisfatória– É por isso que o conceito de número não normalizado É por isso que o conceito de número não normalizado

aparece no padrão IEEEaparece no padrão IEEE– Números não normalizados existem afim de permitir uma Números não normalizados existem afim de permitir uma

ultrapassagem gradual para baixo para as operações ultrapassagem gradual para baixo para as operações produzindo resultados inferiores ao menor número produzindo resultados inferiores ao menor número normalizadonormalizado

Page 30: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0630/32

Representação Interna de Números Representação Interna de Números

• Ponto flutuante IEEE 754: OverflowPonto flutuante IEEE 754: Overflow– Ultrapassagens de borda a esquerda são difíceis de serem Ultrapassagens de borda a esquerda são difíceis de serem

geradas e não há nenhuma combinação particular de bits geradas e não há nenhuma combinação particular de bits para representá-lospara representá-los

– Uma representação específica é reservada ao valor do maior Uma representação específica é reservada ao valor do maior número possível que se possa representarnúmero possível que se possa representar

• diz-se que é infinitodiz-se que é infinito• expoente deste número é composto de bits a 1, sua fração é expoente deste número é composto de bits a 1, sua fração é

composta de bits a zerocomposta de bits a zero

– Este número particular pode ser visto como um operando Este número particular pode ser visto como um operando sobre o qual se aplicam o conjunto de regras de cálculo sobre o qual se aplicam o conjunto de regras de cálculo sobre os grandes númerossobre os grandes números

• soma de um número infinito com um número qualquer resulta soma de um número infinito com um número qualquer resulta em infinitoem infinito

• divisão de um número finito pelo infinito resulta em zero divisão de um número finito pelo infinito resulta em zero • divisão de um número finito por zero resulta infinitodivisão de um número finito por zero resulta infinito

11111111 000000000000000000000000 ou 1

Page 31: Sistemas numéricos e a Representação Interna dos Dados no ...ricardo.silveira/INE5602/Laminas/INE5602Aula4.pdf · – Cada dígito é representado num quarteto (sem bits de zona)

- 03/05/0631/32

Representação Interna de Números Representação Interna de Números

• Ponto flutuante IEEE 754: OverflowPonto flutuante IEEE 754: Overflow– O que se pode dizer da divisão de um número infinito por O que se pode dizer da divisão de um número infinito por

um número infinito? um número infinito? • resultado é indefinidoresultado é indefinido

• uma representação particular foi definida para isto uma representação particular foi definida para isto – NaN (Not a Number) NaN (Not a Number)

11111111 Toda configuração menos todos a zero0 ou 1