Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Capítulo 1 Representação da Informação Parte b Márcio Brandão – CIC/UnB Circuitos Digitais 1. Representação da Informação 1.2 Representação de Nos Negativos 1.2.1 Representação complemento-a-dois 1.2.2 Outras representações 1.3 Representação de Números Reais 1.3.1 Representação em ponto fixo 1.3.2 Representação em ponto flutuante Márcio Brandão – CIC/UnB Circuitos Digitais p p 1.3.3 Representação binária em ponto flutuante 2 1.2.1 Representação complemento-a-dois Valor associado a um número de n bits: ∑− = − − +−= 2 0 1 1 22. n i i i n n xxalorV xn-1 = 1 para números negativos 0 para números positivos Márcio Brandão – CIC/UnB Circuitos Digitais O dígito mais significativo – MSB (Most Significant Bit) – sinaliza o sinal 1.2.1 Representação complemento-a-dois Valor associado a um número de n bits: ∑− = − − +−= 2 0 1 1 22. n i i i n n xxalorV 122 11 −≤≤− −− nn alorV Márcio Brandão – CIC/UnB Circuitos Digitais 3 1.2.1 Representação complemento-a-dois Largura de palavra n = 4 Márcio Brandão – CIC/UnB Circuitos Digitais 1.2.1 Representação complemento-a-dois O complemento-a-dois de um número nessa representação corresponde ao mesmo número i lcom sinal oposto Márcio Brandão – CIC/UnB Circuitos Digitais 4 1.2.1 Representação complemento-a-dois Complemento-a-dois por subtrações binárias ( ) NmóduloXXdoisaoComplement N −=−− 2)( Exemplo (N=4) 1 1 101 0 11 − 001 00 0 111(Valor = +7) (Valor = -7) 1 011 1 11 − 001 00 0 010(Valor = +2) (Valor = -2) Márcio Brandão – CIC/UnB Circuitos Digitais 000 1 11 − 001 00 1 001(Valor = -4) (Valor = +4) 1.2.1 Representação complemento-a-dois Complemento-a-dois por complemento e adição binária 1. Complementar todos os bits do número X 2. Adicionar um ao resultado 0 011(Valor = +6) Complemento bit-a-bit 1 101(Valor = -3) Complemento bit-a-bit Márcio Brandão – CIC/UnB Circuitos Digitais 1 100 0 100 + 1 01 10(Valor = -6) 0 010 0 100 + 10 10(Valor = +3) 5 1.2.1 Representação complemento-a-dois Complemento-a-dois por complemento Começando pelo bit menos significativo (LSB - L S f B ) id d biLeast Significant Bit), e considerando os bits na ordem inversa à sua significação, deixar inalterados os bits que forem 0 até encontrar o primeiro 1. Deixar esse 1 inalterado. Complementar todos os demais bits. Márcio Brandão – CIC/UnB Circuitos Digitais 0 001 1 001 0 100 1 111 1 000 1 000 (X = +4) (X = -4) complementar (X= +1) (X = -1) complementar (X= -8) (X= -8) 1.2.1 Representação complemento-a-dois Operação de subtração Podem ser realizadas através da soma do minuendo l d d b dcom o complemento-a-dois do subtraendo: Exemplo (n=4): minuendo −subtraendo minuendo +(- subtraendo) =−+=− )5(353 2− ≡ Márcio Brandão – CIC/UnB Circuitos Digitais p ( ) )( 0 101 1 110 (X = +5) (X = -5) complementar 11 0 10 10 1 110 1 11 + (Valor = +3) (Valor = -5) (Valor = -2) 6 1.2.1 Representação complemento-a-dois Operação de subtração =−+=− )3(434 1 0 110 1 101 (X = +3) (X = -3) complementar 00 1 00 01 1 101 0 1 + (Valor = +4) (Valor = -3) (Valor = +1) 1 Márcio Brandão – CIC/UnB Circuitos Digitais 00 10(Valor = +1) Esse carry pode ser descartado nos casos em que não ocorrer overflow, ou seja, quando o valor do resultado estiver dentro da faixa de valores representáveis pela largura da palavra. 1.2.1 Representação complemento-a-dois Operação de subtração =−+−=−− )5()3(53 8− 0 110 1 101 (X = +3) (X = -3) complementar 00 0 01 11 1 110 1 1 + (Valor = -3) (Valor = -5) (Valor = 8) 1 1 1 0 101(X = +5) complementar Márcio Brandão – CIC/UnB Circuitos Digitais 00 01(Valor = -8) 1 110(X = -5) complementar 7 1.2.1 Representação complemento-a-dois Operação de soma/subtração O overflow pode ser identificado através da i i ê i d i l d l dinconsistência do sinal do resultado =−+−=−− )5()4(54 9− 0 001 1 001 (X = +4) (X = -4) complementar 01 01(Valor = -4) 1 Márcio Brandão – CIC/UnB Circuitos Digitais 11 1 1 110 0 +(Valor = -5) (Valor = +7!) 0 101 1 110 (X = +5) (X = -5) complementar 1.2.1 Representação complemento-a-dois Operação de soma/subtração O overflow pode ser identificado através da i i ê i d i l d l dinconsistência do sinal do resultado: =+ 65 00 11(Valor = +5) 1 11 Márcio Brandão – CIC/UnB Circuitos Digitais 10 1 0 011 1 +(Valor = +6) (Valor = -5!) 8 1.2.1 Representação complemento-a-dois Operação de soma/subtração O overflow ocorre quando o carry-in para o MSB dif d i d MSBdifere do carry-out proveniente do MSB. 00 11(Valor = +5) 1 1 10 Carry-inCarry-out Márcio Brandão – CIC/UnB Circuitos Digitais 00 0 0 110 1 +(Valor = +3) (Valor = -8!) Overflow 1.2.1 Representação complemento-a-dois Operação de soma/subtração O overflow ocorre quando o carry-in para o MSB dif d i d MSBdifere do carry-out proveniente do MSB. 11 00(Valor = -6) 01 Carry-out Carry-in Márcio Brandão – CIC/UnB Circuitos Digitais 11 0 1 001 0 +(Valor = -4) (Valor = +6!) Overflow 9 1.2.1 Representação complemento-a-dois Operação de soma/subtração Não há overflow quando o carry-in para o MSB é i l i d MSBigual ao carry-out proveniente do MSB. 00 11(Valor = +5) 00 Carry-out Carry-in Márcio Brandão – CIC/UnB Circuitos Digitais 11 1 0 010 0 +(Valor = +2) (Valor = +7) Resultado correto 1.2.1 Representação complemento-a-dois Operação de soma/subtração Não há overflow quando o carry-in para o MSB é i l i d MSBigual ao carry-out proveniente do MSB. 11 10(Valor = -5) 11 Carry-out Carry-in Márcio Brandão – CIC/UnB Circuitos Digitais 00 1 1 011 1 +(Valor = -2) (Valor = -7) Resultado correto 10 1.2.1 Outras Representações de Nos Negativos Existem outras formas para representar números negativos que são raramente ili dutilizadas A principal razão para a não utilização dessas outras representações é que os algoritmos das operações aritméticas para elas, quando comparados com os mesmos algoritmos para a Márcio Brandão – CIC/UnB Circuitos Digitais comparados com os mesmos algoritmos para a representação complemento-a-dois, apresentam uma maior complexidade. 1.2.1 Outras Representações de Nos Negativos Representação sinal-magnitude O bit mais significativo (xn-1) representa o sinal xn-1= 1 ⇒ número negativo xn-1 = 0 ⇒ número positivo Os outros bits representam o valor absoluto 012321 ... xxxxxx nnn −−− Márcio Brandão – CIC/UnB Circuitos Digitais 012321 nnn −−− MagnitudeSinal 11 1.2.1 Outras Representações de Nos Negativos Representação sinal-magnitude para n=4 Márcio Brandão – CIC/UnB Circuitos Digitais 1.2.1 Outras Representações de Nos Negativos Representação complemento-a-um O bit mais significativo (xn-1) representa o sinal xn-1= 1 ⇒ número negativo xn-1 = 0 ⇒ número positivo O complemento-a-um de um número nessa representação corresponde ao mesmo número com sinal oposto Márcio Brandão – CIC/UnB Circuitos Digitais ( ) XXumaoComplement N −−=−− 12)( 12 1.2.1 Outras Representações de Nos Negativos Representação complemento-a-um para n=4( ) XXumaoComplement n −−=−− 12)( Na prática, a operação complemento-a-um 11 1 001 00 −0 100 1 1 11 1 n2 12 −n − 01 0 11 11 0 110 1Valor=-3 Valor=+3 12 −n Márcio Brandão – CIC/UnB Circuitos Digitais p p p envolve apenas a complementação de todos os bits da palavra! 1.2.1Outras Representações de Nos Negativos Representação complemento-a-um para n=4 Márcio Brandão – CIC/UnB Circuitos Digitais 13 1.2.1 Outras Representações de Nos Negativos Representação complemento-a-um Fácil obtenção do negativo de um número No entanto, uma operação de adição de dois números nessa representação apresenta um algoritmo de maior complexidade do que o algoritmo de adição na representação complemento-a-dois. Márcio Brandão – CIC/UnB Circuitos Digitais 1.3 Representação de Números Reais Representação em ponto fixo Reserva-se um número de bits para representar a f i á iparte fracionária Assume-se uma posição fixa para o ponto binário (que não é armazenado explicitamente). Márcio Brandão – CIC/UnB Circuitos Digitais 14 1.3.1 Representação em Ponto Fixo 167 83 51 010 0 111 1 010 0 111 Binário Valor Decimal 20.875 41.75 83.5 10.4375 5 218751 010 0 111 1 010 0 111 1 010 0 111 1 010 0 111 1 010 0 111 Márcio Brandão – CIC/UnB Circuitos Digitais 1.3046875 2.609375 5.21875 1 010 0 111 1 010 0 111 1 010 0 111 1 010 0 111 0.65234375 1.3.1 Representação em Ponto Fixo Note que, para números de n bits, a quantidade de valores representáveis é 2n Supondo i bits para a parte inteira f bits para a parte fracionária n=i+f Se ã e t e ú e : 2-f Márcio Brandão – CIC/UnB Circuitos Digitais Separação entre números: 2-f Maior número positivo: (2n-1-1)/2-f Número mais negativo: -2n-1/2-f 15 1.3.1 Representação em Ponto Fixo Para palavras de largura n=8 n i f Valores Menor valor Maior valor Intervalo 8 8 0 256 -128 127 1 8 7 1 256 -64 63.5 0.5 8 6 2 256 -32 31.75 0.25 8 5 3 256 -16 15.875 0.125. 8 4 4 256 -8 7.9375 0.0625 Márcio Brandão – CIC/UnB Circuitos Digitais 8 3 5 256 -4 3.96875 0.03125 8 2 6 256 -2 1.984375 0.015625 8 1 7 256 -1 0.9921875 0.0078125 8 0 8 256 -0.5 0.49609375 0.00390625 1.3.2 Representação em Ponto Flutuante Um número representado em ponto flutuante apresenta quatro partes Sinal Mantissa Base Expoente Esses quatro componentes se combinam para Márcio Brandão – CIC/UnB Circuitos Digitais Esses quatro componentes se combinam para formar o valor X: expoentebasemantissasinalX **= 16 1.3.2 Representação em Ponto Flutuante Números em ponto flutuante podem ser representados de diversas maneiras Exemplo: X=-3 Sinal Mantissa Expoente -1 30 -1 -1 3 0 -1 0.3 1 -1 0.03 2 Márcio Brandão – CIC/UnB Circuitos Digitais Para números normalizados, a mantissa está na faixa 11 ≤≤ mantissa base 1.3.2 Representação em Ponto Flutuante Números normalizados apresentam uma mantissa com um dígito não-nulo i di à di i d í l dí iimediatamente à direita da vírgula, e o dígito nulo imediatamente à esquerda da vírgula. N t ã há t ã li d 11 ≤≤ mantissa base Márcio Brandão – CIC/UnB Circuitos Digitais Note que não há representação normalizada para o valor 0 (zero). 17 1.3.2 Representação Binária em Ponto Flutuante Padrão IEEE 754, de 1985 Precisão simples – 32 bits Precisão dupla 64 bits Precisão dupla – 64 bits A base 2 é implícita, e apenas o sinal, a mantissa e o expoente são armazenados Número de bits: Márcio Brandão – CIC/UnB Circuitos Digitais Precisão Sinal Expoente Mantissa Simples 1 8 23 Dupla 1 11 52 1.3.2 Representação Binária em Ponto Flutuante Sinal 1 indica número negativo 0 indica número positivo Mantissa A posição do ponto binário é assumida como sendo aquela adotada na notação científica normalizada, com exatamente um dígito diferente Márcio Brandão – CIC/UnB Circuitos Digitais , g de zero antes do ponto binário Como esse dígito tem que necessariamente ser “1”, ele não é armazenado (bit implícito), o que aumenta em um bit a precisão do número! 18 1.3.2 Representação Binária em Ponto Flutuante Atribuição dos bits para precisão simples: 27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-22 2-23... Valor decimal correspondente: 1272*)1()1( −+−= ES FY S Expoente (E) Fração (F) 8 bits 23 bits1 bit Para números normalizados: Ou seja: Márcio Brandão – CIC/UnB Circuitos Digitais 2541 ≤≤ E 127126 ≤≤− e e 1.3.2 Representação Binária em Ponto Flutuante Expoente Note que foi adicionada uma polarização (bias) d d l ( )que deve ser somada ao expoente real (e) para obter o expoente armazenado (E): Valor da polarização 127 na precisão simples: 127+= eE Márcio Brandão – CIC/UnB Circuitos Digitais 19 1.3.2 Representação Binária em Ponto Flutuante Expoente Precisão simples: 127+= eE Expoente real (e)Expoente armazenado (E) 0 000 0 000 …… -1260 000 0 100 -10 111 1 011 +11 000 0 000 00 111 1 111 Reservados para valores especiais Márcio Brandão – CIC/UnB Circuitos Digitais 1 111 1 111 …… +11 000 0 000 +1271 111 1 011 1.3.2 Representação Binária em Ponto Flutuante Exemplo 1 27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-22 2-23... 1=S 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 1 1 1 1 1 1 1 1 0 0 0 0 0 ... Expoente (8 bits) Fração (23 bits)Sinal 0 0... 127=E 5.0=F 1271271127 2*)5.01()1(2*)1()1( −− +−=+−= ES FY Márcio Brandão – CIC/UnB Circuitos Digitais )5.0()()()( 5.1−=Y 20 1.3.2 Representação Binária em Ponto Flutuante Exemplo 2 27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-22 2-23... 0=S 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0 0 0 0 0 1 0 1 0 0 0 0 ... Expoente (8 bits) Fração (23 bits)Sinal 0 0... 129=E 25.0=F 1271290127 2*)25.01()1(2*)1()1( −− +−=+−= ES FY Márcio Brandão – CIC/UnB Circuitos Digitais )5.0()()()( 5225.1 2 =×=Y 1.3.2 Representação Binária em Ponto Flutuante Exemplo 3 ( ) ( ) 12222 21.1211234 3 4 1 2 175.0 −−− ×=×=×==+==Y 0=S 7 6 5 4 3 2 1 0 1 2 3 4 5 6 22 23 126=E 5.0=F eS FY 2*)1()1( +−= 442 127+= eE 1−=e Márcio Brandão – CIC/UnB Circuitos Digitais 0 27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-22 2-23 0 1 1 1 1 1 1 0 1 0 0 0 0 0 ... Expoente (8 bits) Fração (23 bits)Sinal 0 0... 21 1.3.2 Representação Binária em Ponto Flutuante Exemplo 4 8 21 8 1 2 12625,2 −=⎟⎠ ⎞⎜⎝ ⎛ ++−=−=Y eS FY 2*)1()1( +−= 127+= eE 1=e ( ) ( ) 12323 20101.1210101221 ×−=×−=×−= −−Y Márcio Brandão – CIC/UnB Circuitos Digitais 1=S 1 27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-22 2-23 1 0 0 0 0 0 0 0 0 1 0 1 0 0 ... Expoente (8 bits) Fração (23 bits)Sinal 0 0... 128=E 3125.022 42 =+= −−F 1.3.2 Representação Binária em Ponto Flutuante Exemplo 5 5237 32 37 −×==Y eS FY 2*)1()1( +−= 127+= eE 0=e ( ) ( ) 0252 200101.12100101 ×=×= −Y Márcio Brandão – CIC/UnB Circuitos Digitais 0=S 1 27 26 25 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-22 2-23 0 1 1 1 1 1 1 1 0 0 1 0 1 0 ... Expoente (8 bits) Fração (23 bits)Sinal 0 0... 127=E 15625.022 53 =+= −−F 22 1.3.2 Representação Binária em Ponto Flutuante Atribuição dos bits para precisão dupla: 21029 28 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 2-51 2-52...... Valor decimal correspondente: 10232*)1()1( −+−= ES FY S Expoente (E) Fração (F) 11 bits 52 bits1 bit Para números normalizados: Ou seja: Márcio Brandão – CIC/UnB Circuitos Digitais 20461 ≤≤ E 10231022 ≤≤− e e 1.3.2 Representação Binária em Ponto Flutuante Márcio Brandão – CIC/UnB Circuitos Digitais 23 1.3.2 Representação Binária em Ponto Flutuante Márcio Brandão – CIC/UnB Circuitos Digitais Referências Goldberg, David (March 1991),What every computer scientist should know about floating- i i h i C i Spoint arithmetic, Computing Surveys. (http://www.validlab.com/goldberg/paper.ps) Pedroni, Volnei A. (2010), Eletrônica Digital Moderna e VHDL, Elsevier Márcio Brandão – CIC/UnB Circuitos Digitais
Compartilhar