Baixe o app para aproveitar ainda mais
Prévia do material em texto
Representação de números com sinal Prof. Dr. Leandro Carrijo Cintra Introdução à Ciência da Computação Sistemas de Informação Puc-Campinas Números inteiros Existem diversas possibilidades. Os computadores modernos utilizam o complemento de dois Sinalmagnitude Complemento de um Complemento de dois ExcessoN TODAS AS METODOLOGIAS INVARIAVELMENTE UTIZAM O BIT MAIS SIGNIFICATIVO COMO O BIT DE SINAL Sinal-magnitude Signal-magniture: características Duas representações para o zero (00000000 (+0) e 10000000 (0) ). Isto dificulta comparações! Complicações para se trabalhar com números negativos. Ex: 1 + (1) = 2 10000001 10000001 00000010 (ops!!!! A soma de dois números negativos resultou em um número positivo) Signal-magniture: características Complicações para se trabalhar com números negativos e positivos. Ex: 1 + (1) = 0 00000001 10000001 10000010 (ops!!!! 2 ?????) Signal-magniture: overflow A soma de dois números positivos resultar em um negativo, ou o inverso, indica um overflow 01111111 (127) 01111111 (127) 11111110 (126) Complemento de um Obtemse um número negativo a partir do complemento da sua contraparte positiva Ex: 125 – 01111101 125 10000010 Complemento de um: Características Duas representações para o zero (00000000 (+0) e 11111111 (0) ). Isto dificulta comparações! Problema da soma resolvido, mas há um truque. Ex: 1 + (1) = 2 11111110 11111110 11111100 (resultado errado ainda) 1 (somase o vai um final) 11111101 (resultado correto) Complemento de um: Características Problema da soma resolvido, mas há um truque. Ex: 2 + (1) = 1 00000010 11111110 00000000 (resultado errado ainda) 1 (somase o vai um final) 00000001 (resultado correto) Complemento de um: overflow A soma de dois números positivos resultar em um negativo, ou o inverso, indica um overflow 01111111 (127) 01111111 (127) 11111110 0 (somase o vai um final) 11111110 (resultado final, com overflow) Complemento de dois Obtemse um número negativo somandose um a sua contraparte positiva Ex: 126 – 01111110 126 10000010 Complemento de dois: Características Uma única representação para o zero Problema da soma resolvido, sem truque. Ex: 1 + (1) = 2 11111111 11111111 11111110 Complemento de dois: Características Problema da soma resolvido. Ex: 2 + (1) = 1 00000010 11111111 00000001 Complemento de dois: overflow A soma de dois números positivos resultar em um negativo, ou o inverso, indica um overflow 01000000 (64) 01000000 (64) 10000000 Complemento excesso-N Um valor é representado pelo número sem sinal que é N unidades maior do que o valor pretendido. Assim, 0 é representado por N, e N é representado pelo padrão de bits zeros Representação de números reais Para a representação de números reais, além de se armazenar o sinal e o valor absoluto do mesmo; é necessário saber também a posição da vírgula (casa decimal) no número A notação mais utilizada é a notação de ponto flutuante Observações no sistema decimal Considere o número 1245,78 Perceba que existem várias representações para este valor: 1245,78*100; 12,4578*102; 124578*102; 0,124578*104; Notação normalizada (notação científica): X,YZ...*10m sendo que X é um algarismo diferente de 0 ex.: 1,05*102; 2,34*103 Exercícios: Represente os valores decimais abaixo na notação normalizada a) 10,234 b) 15,033 c) 0,111 d) 0,001221 e) 10000 f) 0,0000234 Uma representação normalizada pode ser conseguida para binários Considere o número 101,11 Ele pode ser reescrito como 1,0111*22 Outro exemplo: 0,00101 Pode ser reescrito como: 1,01*23 Represente os binários abaixo na notação normalizada 11,1101 0,1101 0,001001 101011,0011 11011,111 0,00010110 Converta para decimal os números binários a) 1,01101 * 22 b) 1,01 * 21 Ponto flutuante (norma IEEE 754) Primeiro bit para sinal (0 – positivo 1negativo) 8 bits para expoente em excesso127 23 bits para a parte fracionária do número (mantissa) Exemplos 0,510=0,12=1,0*2 1 Portanto, expoente = 1 e mantissa = 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Exemplos 1,510=1,12=1,1*2 0 Portanto, expoente = 0 e mantissa = 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Exemplos 6,62510=110,1012=1,10101*2 2 Portanto, expoente = 2 e mantissa = 10101 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Exercícios Converta os valores decimais abaixo para binário em ponto flutuante a) 3,375 b) 13,625 c) 1,6875 d) 446,625 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26
Compartilhar