• Nenhum resultado encontrado

EDCODE2

N/A
N/A
Protected

Academic year: 2021

Share "EDCODE2"

Copied!
8
0
0

Texto

(1)

Universidade de Brasília

Departamento de Engenharia Elétrica Sistemas Digitais 1 (1/04)

Prof. Dr. Alexandre Romariz

Estudo Dirigido - Códigos Parte 2

Representação de Números Negativos, fracionários e BCD

1

Introdução

Até aqui, estudamos a representação de números em bases não-decimais (especi-almente base 2) considerando apenas números inteiros positivos. Obviamente, um sistema digital precisa lidar com números negativos e fracionários. Veremos tam-bém que por vezes é conveniente tratar cada grupo de 4 dígitos binários como um dígito decimal, em uma representação conhecida como BCD. Estes são os objetos deste estudo dirigido.

2

Representação de Números Negativos

2.1

Representação Sinal-e-Magnitude

Possivelmente, a primeira idéia que nos ocorre ao tentar estender a representação binária para números negativos é representar apenas o módulo, e usar um bit extra para representar o sinal. Tipicamente, usa-se o bit mais significativo para esta fun-ção, e o código resultante é conhecido como Sinal-e-Magnitude. Veja o exemplo da Figura 1.

Exemplo: Representar o número -3 em 4 bits Módulo: (3)2 = 0011

Falta apenas indicar o sinal no bit mais significativo: (−3)2 = 1011.

Observe que, em cinco bits, a representação seria 10011. Assim, ao lidar com

números negativos, precisamos saber qual o tamanho da palavra digital usada na representação.

Figura 1: Exemplo de representação de número negativo no código sinal-e-magnitude.

(2)

Quando representamos números inteiros sem sinal, podemos representar 2n

números em palavras digitais de n bits, quais sejam, os inteiros entre0 e 2n−1

− 1.

Ao representarmos números positivos e negativos no código sinal e magnitude, podemos representar todos os inteiros entre −(2n−1

− 1) e 2n−1− 1. Note também

que há duas representações válidas para o número 0 (em 4 bits, como no exemplo da Figura 1, teríamos tanto 1111 quanto 0000 para representar o número zero).

A representação sinal-e-magnitude tem como principal vantagem a sua sim-plicidade. Infelizmente, esta simplicidade resulta em uma complexidade maior para as operações aritméticas, motivo pelo qual outros códigos são mais usados para esta tarefa.

2.2

Representação em Complemento de Dois

A representação Complemento de Dois é a mais usada para números negativos em sistemas digitais. Dada uma palavra de n bits, o número −Q é representado por

2n

−Q. Na prática, isto significa inverter todos os bits e somar 1, como no exemplo

da Figura 2. No caso de complemento de 2, uma palavra de n bits representa os Exemplo: Representar o número -23 em 6 bits, utilizando o código complemento de 2. 23=(010111)2 101000 1 (101001)2 = -23 Inverter os bits +

Figura 2: Exemplo de representação de número negativo no código complemento de dois.

números inteiros entre −2n−1 e 2n−1

− 1, inclusive. Obviamente, os números

positivos têm a mesma representação do caso de um código sinal-e-magnitude e um código para inteiros sem sinal. Dada uma palavra binária, não se pode concluir que ela represente um número negativo apenas porque fomos informados que o código usado no sistema é o complemento de dois. Observe também que tanto para o código sinal-e-magnitude quanto para complemento de dois, um número será positivo se o bit mais significativo for zero.

(3)

3

Operações com números inteiros

3.1

Adição e Subtração em complemento de dois

Uma das maiores vantagens da representação de números inteiros em comple-mento de dois está na facilidade com que são feitas as operações de adição e subtração. Em uma representação sinal-e-magnitude, devemos ter uma lõgica que verifique os sinais das parcelas, e então efetue uma adição ou subtração conforme o caso, e ainda determine o sinal do resultado.

Em complemento de dois, a regra é extremamente simples. Somam-se os nú-meros diretamente, desprezando-se o último “vai um”. O resultado da soma será o resultado correto da operação, desde que este resultado esteja na faixa de valo-res repvalo-resentáveis pela palavra digital escolhida. Voltaremos a esta condição mais adiante. A Figura 3 mostra exemplos de somas com parcelas positivas, negativas e mistas.

Exemplo: Mostramos abaixo vários exemplos de somas, com a soma decimal à esquerda, e o seu equivalente binário (em complemento de 2) à direita. Uma palavra digital de 4 bits representa os números -8 a 7 em complemento de 2. Observe que o resultado está correto, independente de sinais das parcelas. Note também que o último “vai-um” precisa ser desprezado.

3 4 7 + 0011 0100 0111 + -2 -6 -8 + 1 1110 1010 1000 + 6 -3 3 + 0110 1101 0011 1 + 4 -7 -3 + 0100 1001 1101 +

Figura 3: Exemplo de soma binária em complemento de 2.

O fato de que o resultado correto é obtido sem que nos preocupemos com os sinais das parcelas pode parecer misterioso à primeira vista. Ele decorre natural-mente da estrutura da representação complemento de dois. Isto é mais facilnatural-mente visualizado com a Figura 4, em que os números binários positivos e negativos es-tão dispostos em círculo. Nesta representação, partindo-se de uma posição qual-quer no círculo (representando um número qualqual-quer), para somar s a este número andamos s posições no sentido horário. Para subtrair s, andamos s posições no

(4)

0000 1000 0001 0010 0011 0101 1011 1100 1101 1110 1111 0110 1010 0111 1001 0100 +0 –8 +1 –1 +7 –7 +2 –2 +3 –3 +4 –4 +5 –5 +6 –6 Subtraction of positive numbers Addition of positive numbers

Figura 4: Representação gráfica do código complemento de dois [1].

sentido anti-horãrio. Observe que, se cruzarmos a fronteira entre o +7 e o -8, o resultado obviamente não vale.

Se estivermos dentro da faixa representável, no entanto, subtrair s ou somar

16 − s tem o mesmo resultado. Note que 16 − s é justamente a representação

em complemento de dois de s para palavras de quatro bits. Isto justifica a afir-mação anterior que a soma de números negativos (ou subtração) poderia ser feita como soma simples, desde que as parcelas e resultados estejam representados em complemento de dois, e desde que o resultado esteja na faixa de números repre-sentáveis.

3.2

Transbordamento (overflow)

O resultado da operação de adição pode estar fora da faixa de representação do sistema, caso conhecido como overflow ou transbordamento. No caso de números sem sinal, é fácil identificar overflow: basta verificar se houve “vai um” no último bit da soma. No entanto, para representação em complemento de dois a questão não é tão simples. Afinal, a regra explicitamente despreza o último “vai um”, uma indicação de que sua ocorrência não significa que a faixa de representação tenha sido violada.

A Figura 5 mostra alguns exemplos de overflow. Observe que em ambos os casos, tivemos a soma de números de mesmo sinal, e que o resultado ficou erra-damente indicado como sendo de sinal diferente.

Para definir uma regra de verificação de overflow, começamos observando que apenas parcelas de mesmo sinal podem produzi-lo (para se convercer disso, re-torne à Figura 4 e verifique que para atravessar a frointeira do -8 para o 7 é pre-ciso andar no sentido horário para números positivos,e anti-horário para números

(5)

Exemplos: O resultado das somas indicadas abaixo estouram o li-mite de representação do sistema (no caso, em 4 bits). Em con-seqüência, o reultado representado em complemento de 2 não é o va-lor correto. O sistema deve ser capaz de identificar esta condição.

3 7 10 + 0011 0111 (1010)2=-6 + -3 -6 -9 + 1 1101 1010 (0111)2 + =+7 Figura 5: Exemplo de soma binária em complemento de 2 que produz overflow.

negativos). Assim, não precisamos nos preocupar quando as duas parcelas têm sinais diferentes.

Há duas regras equivalentes para identificar overflow. A primeira nos diz que ocorre overflow se a soma tem sinal diferente das parcelas. A segunda, mais complexa de descrever mas por vezes mais fácil de verificar em hardware, diz que ocorre overflow se o “vai-um” do penúltimo e último bits da soma forem diferentes. Em outras palavras, se não houve “vai um” no último bit mas houve no penúltimo, ocorreu overflow, como no primeiro exemplo. Se houve “vai-um” no último bit sem ter havido no penúltimo, também ocorre overflow, como no segundo exemplo.

4

Código BCD

É comum, no controle de mostradores digitais (diplays) controlar cada dígito de-cimal diretamente com uma palavra binária (ao invés de realizar a codificação binário-decimal para cada número mostrado). Neste caso, precisamos de um có-digo em que cada 4 bits representará um dígito decimal (3 bits só representariam os dígitos 0 a 7). O código mais comum para essa aplicação, chamado BCD (Binary-Coded Decimal), atribui o código binário correspondente aos dígitos 0 a 9, e deixa sem uso as palavras binárias que representariam os dígitos inexistentes (10 a 15). Existem, no entanto, outras alternativas, como mostramos na Figura 6.

5

Representação de Caracteres

Os sistemas de processamento digital de informaçao devem lidar não apenas com números, mas com outros símbolos, como por exemplo caracteres. O padrão mais usado para este caso é o código ASCII (American Standard Code for Information

(6)

T a b l e 2 - 9 Decimal codes.

Decimal digit BCD (8421) 2421 Excess-3 Biquinary 1-out-of-10

0 0000 0000 0011 0100001 1000000000 1 0001 0001 0100 0100010 0100000000 2 0010 0010 0101 0100100 0010000000 3 0011 0011 0110 0101000 0001000000 4 0100 0100 0111 0110000 0000100000 5 0101 1011 1000 1000001 0000010000 6 0110 1100 1001 1000010 0000001000 7 0111 1101 1010 1000100 0000000100 8 1000 1110 1011 1001000 0000000010 9 1001 1111 1100 1010000 0000000001

Unused code words

1010 0101 0000 0000000 0000000000 1011 0110 0001 0000001 0000000011 1100 0111 0010 0000010 0000000101 1101 1000 1101 0000011 0000000110 1110 1001 1110 0000101 0000000111 1111 1010 1111 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅

Figura 6: Códigos para representação binária de decimais [1].

e mais alguns códigos de controle, tais como fim-de-linha. Este código está mos-trado na Figura 7.

6

Exercícios

1. (Wakerly 2.1) Efetue as seguintes conversões: (a) (1101011)2 =?16

(b) (11011001)2 =?8

(c) (101111, 0111)2 =?8

2. (Wakerly 2.5) Efetue as seguintes conversões (a) (1101011)2 =?10

(7)

T a b l e 2 - 1 1 American Standard Code for Information Interchange (ASCII),

Standard No. X3.4-1968 of the American National Standards Institute. b6b5b4 (column) b3b2b1b0 Row (hex) 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 0000 0 NUL DLE SP 0 @ P ` p 0001 1 SOH DC1 ! 1 A Q a q 0010 2 STX DC2 " 2 B R b r 0011 3 ETX DC3 # 3 C S c s 0100 4 EOT DC4 $ 4 D T d t 0101 5 ENQ NAK % 5 E U e u

0110 6 ACK SYN & 6 F V f v

0111 7 BEL ETB ' 7 G W g w 1000 8 BS CAN ( 8 H X h x 1001 9 HT EM ) 9 I Y i y 1010 A LF SUB * : J Z j z 1011 B VT ESC + ; K [ k { 1100 C FF FS , < L \ l | 1101 D CR GS - = M ] m } 1110 E SO RS . > N ^ n ~ 1111 F SI US / ? O _ o DEL Control codes

NUL Null DLE Data link escape

SOH Start of heading DC1 Device control 1

STX Start of text DC2 Device control 2

ETX End of text DC3 Device control 3

EOT End of transmission DC4 Device control 4

ENQ Enquiry NAK Negative acknowledge

ACK Acknowledge SYN Synchronize

BEL Bell ETB End transmitted block

BS Backspace CAN Cancel

HT Horizontal tab EM End of medium

LF Line feed SUB Substitute

VT Vertical tab ESC Escape

FF Form feed FS File separator

CR Carriage return GS Group separator

SO Shift out RS Record separator

SI Shift in US Unit separator

SP Space DEL Delete or rubout

Figura 7: Código ASCII [1].

(c) (7156)8 =?10

(d) F3A516 =?10

3. (Wakerly 2.6) Efetue as seguintes conversões: (a) 12510 =?2

(8)

(b) 72710 =?5

4. (Wakerly 2.11) Escreva a representação sinal-e-magnitude e complemento de dois em 8 bits para os seguintes números: 18,115,79,-49,-3 e -100.

Referências

[1] J.F. Wakerly. Digital Design: Principles and Practices. Prentice Hall, Upper Saddle River, USA, third edition, 2000.

Referências

Documentos relacionados

Origem do direito tributário; origens das receitas públicas e sua classificação atual: o sistema constitucional brasileiro consoante reforma tributária do ano de

Assim, com o aprofundamento e a apreciação das perspectivas educacionais, esta estratégia não apenas vai contribuir para uma estruturação inter-pessoal

1 — Os apoios são concedidos pela Câmara Municipal da Guarda às IPSS legalmente cons- tituídas de acordo com o estipulado no n.º 3, do artigo 2.º do presente Regulamento... 2 —

Computado os escores médios das palavras no conjunto de treinamento, o programa deverá inferir o sentimento de um segundo conjunto de comentários, chamado de conjunto de teste..

Diferentemente do prazo fixado para pagamento dos precató- rios, as RPVs são depositadas pelos Tribunais Regionais Federais nos bancos ofi- ciais, mensalmente, obedecido o prazo de

A comunicação desenvolve o tema de aplicação do conceito gestão do risco precisamente ao risco de gestão dos recursos hídricos, focando os processos de decisão e de

Há uma grande expectativa entre os cientistas de que, nesta próxima década, novos resultados de observações cosmológicas, aliados aos resultados dos grandes aceleradores como o

15.6 - Os pedidos de esclarecimentos referentes a este processo licitatório deverão ser enviados ao pregoeiro, até três dias úteis anteriores à data fixada para abertura da