Está en la página 1de 24

INSTITUTO POLITCNICO DE LEIRIA ESCOLA SUPERIOR DE TECNOLOGIA E GESTO DEPARTAMENTO DE ENGENHARIA ELECTROTCNICA SISTEMAS DIGITAIS

Aula de Preparao
Cdigos numricos binrios

Cdigos numricos binrios

1.1

Notao posicional

O dgito associado a cada posio tem um determinado peso que uma potncia da base numrica utilizada.

Para o exemplo dos nmeros decimais, que utilizam a base 10: 946=9102+4101+6100

No caso dos nmeros fraccionrios: 0,375=0100+310-1+710-2+510-3

No caso geral: 123,45=1102+2101+3100+410-1+510-2

Cada um dos dgitos do nmero pode tomar um valor que varia entre 0 e B-1, sendo B a base utilizada.

Este facto bvio no caso dos nmeros decimais, em que utilizamos dgitos que variam entre 0 e 9.
Escola Superior de Tecnologia e Gesto Sistemas Digitais Instituto Politcnico de Leiria 1

1.2

Cdigo binrio natural

Na numerao binria utiliza-se a base 2, havendo apenas dois algarismos distintos: o 0 e o 1. Continua-se, no entanto, a utilizar a notao posicional.

Por exemplo: 100112=124+023+022+121+120

Do mesmo modo para nmeros fraccionrios: 10,0112=121+020+02-1+12-2+12-3

O dgito mais esquerda, por ser o com maior peso, designado por bit mais significativo, ou MSB (do ingls more significant bit).

O dgito mais direita, por ser o com menor peso, designado por bit menos significativo, ou LSB (less significant bit).

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

Converso binrio-decimal

A converso de binrio para decimal feita directamente pela aplicao do princpio da notao posicional.

Exemplo de um nmero inteiro:

10011= =124 +023 +022 +121 +120= =116 +08 = 16 + 0 +04 + 0 +12 + 2 +11 = + 1 =

= 1910

Nmeros com componente fraccionria:

10,0112= =121 +020 +02-1 +12-2 =12 = 2 +01 + 0 +12-3 =

+00,5 +10,25 +10,125 = + 0 + 0,25 + 0,125 =

=2,37510

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

Converso decimal-binrio

A converso de decimal para binrio feita em duas partes: a parte inteira e a parte fraccionria.

Considere-se o nmero decimal 275, 687510. a) - Converso da parte inteira, 27510: 275 2 LSB 1 1 3 7 1

2 68 0

2 34 0

2 17 1

2 8 0

2 4 0

2 2 0

2 1

MSB

Resultado: 1 0 0 0 1 0 0 1 1 2

b) Converso da parte fraccionria, 0,687510:

0,68752 = 0,3752 0,752 0,52 = = =

1 ,375 0 ,75 1 ,5 1 ,0

Resultado: 0 , 1 0 1 1 2

O resultado final obtm-se pela combinao dos resultados das converses das partes inteira e fraccionria: 275,687510=100010011,10112

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

1.3

Cdigo octal (representao com base 8)

Na numerao octal utiliza-se a base 8 e oito algarismos distintos: do 0 ao 7. Continua-se no entanto a utilizar a notao posicional, seguindo o mesmo esquema apresentado anteriormente.

Por exemplo o nmero 3428 representa o nmero decimal 226. 3428 = 3 8 2 + 4 8 1 + 2 8 0 = 22610 Existe uma correspondncia directa entre cada algarismo octal e cada grupo de 3 bit binrios:

Binrio 000 001 010 011 100 101 110 111

Octal 0 1 2 3 4 5 6 7

Utilizando esta correspondncia, a converso de nmero de binrio para octal e vice-versa torna-se extremamente simples:

275,68 (Octal binrio) 010 111 101, 1102

110 100 000,0012 (Binrio octal) 640,18

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

1.4

Cdigo hexadecimal (representao com base 16)

Na numerao hexadecimal utiliza-se a base 16 e, logo, dezasseis smbolos distintos. Uma vez que s h 10 algarismos (0..9), os restantes 6 smbolos so letras:

Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F

Binrio 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Continua-se a utilizar a notao posicional.

Por exemplo o nmero 2C2316 representa o nmero decimal 11299. A converso binrio para hexadecimal e vice-versa anloga ao caso octal, mas para grupos de 4 bits:

2A5,116 (Hexadecimal binrio) 0010 1010 0101, 00012

0110 0100 0000,10012 (Binrio hexadecimal) 640,916

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

1.5

Cdigos BCD (Binary Coded Decimal)

Os cdigos BCD associam a cada um dos 10 dgitos decimais (0 a 9) um cdigo binrio com 4 bits.

O cdigo BCD tambm designado por cdigo 8-4-2-1, por serem esses os pesos relativos de cada um dos bits utilizados na representao de cada dgito.

Este cdigo idntico numerao hexadecimal, mas s inclui numeros entre 0 e 9, excluindo os nmeros de A a F. Decimal 0 1 2 3 4 5 6 7 8 9 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

A representao de um nmero em BCD associa a cada um dos dgitos decimais a palavra de 4 bits correspondente. Por exemplo:

23510 0010 0011 0101BCD Os cdigos BCD so particularmente utilizados na representao de nmeros em visores de 7 segmentos.

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

1.6

Cdigos Gray

Este tipo de codificao tem a particularidade de apresentar apenas um bit diferente entre cada dois cdigos consecutivos.

Esta caracterstica muito vantajosa no controlo de erros de leitura, sendo por isso muito utilizado em sistemas de instrumentao (sensores de posio, encoders, etc.).

Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Binrio Natural 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

2
2.1

Adio e Subtraco binrias


Adio Binria

As regras da adio binria encontram-se resumidas na tabela seguinte:

Operao 0+0 0+1 1+0 1+1

Resultado 0 1 1 0

Transporte 0 0 0 1

Se considerarmos tambm o transporte de entrada, a tabela da adio binria ser a seguinte: Transporte de Entrada 0 0 0 0 1 1 1 1 Operao 0+0=0 0+1=1 1+0=1 1+1=0 0+0=1 0+1=0 1+0=0 1+1=1 Transporte de Sada 0 0 0 1 0 1 1 1

Exemplo:
1 0 0 1 1 1 1 Transportes

10010,112 + 11011,012 101110,002

Exerccio: 110100,001+101111,1;

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

2.2

Subtraco Binria

As regras para a subtraco binria, considerando o transporte de entrada, esto indicadas na tabela seguinte: Transporte de Entrada 0 0 0 0 1 1 1 1 Operao 0-0=0 0-1=1 1-0=1 1-1=0 0-0=1 0-1=0 1-0=0 1-1=1 Transporte de Sada 0 1 0 0 1 1 0 1

Analisemos um pequeno exemplo (em decimal 4-2=2):


1 0

1002 - 0+1 1 0 2 00102 Outro exemplo:


0 1 1 1 Transportes

110002 - 100012 001112 Importante! Este algoritmo s vlido para subtrair de um nmero, outro que lhe inferior. Se o segundo nmero for maior que o primeiro deve realizar-se a subtraco inversa e afectar-se o resultado do sinal -. Por exemplo, este algoritmo no permite efectuar a operao 3-7. A soluo realizar a subtraco 7-3 e dizer que o resultado 4.

Exerccio: 110100,001 - 1111,1;

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

10

Representao de nmeros negativos

Cdigos binrios bipolares = cdigos binrios que permitem a representao de nmeros positivos e negativos.

3.1

Cdigo binrio de sinal e valor absoluto

O primeiro bit representa o sinal do nmero, correspondendo o 0 a um nmero positivo e o 1 ao sinal negativo. Por exemplo: +1310=01101 -1310=11101 Representao de 2n-1 nmeros diferentes, utilizando cdigos de n bits.
Cdigo de sinal e valor absoluto

Decimal

011 010 001 000 100 101 110 111

+3 +2 +1 +0 -0 -1 -2 -3

(+2 -1)

3-1

2 representaes do 0

-(2 -1)

3-1

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

11

3.2

Cdigo binrio de complementos para 1

Neste caso, os nmeros positivos so representados exactamente da mesma forma utilizada no cdigo de sinal e valor absoluto.

Um nmero negativo representado colocando o bit mais significativo (MSB) a 1 (para representar o sinal) e complementando bit a bit todos os bits restantes, correspondentes representao binria do nmero original.

Por exemplo: + 1 3 1 0 = 0 1 1 0 1 c1 (igual a sinal e valor abs.) 1310=11012 - 1 3 1 0 = 1 0 0 1 0 c1 (sinal e nmero complementado)

Representao de 2n-1 nmeros diferentes, utilizando cdigos de n bits.


Cdigo de sinal e valor absoluto

Complemento para 1

Decimal

011 010 001 000 100 101 110 111

011 010 001 000 111 110 101 100

+3 +2 +1 +0 -0 -1 -2 -3

+(2 -1)

3-1

2 representaes do 0

-(2 -1)

3-1

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

12

3.3

Cdigo binrio de complementos para 2

Um dos cdigos binrios bipolares mais utilizados em sistemas computorizados o cdigo de complementos para dois.

A representao dos nmeros positivos igual aos dois casos j apresentados.

Um nmero negativo obtido somando 1 ao bit menos significativo do cdigo de complemento para um correspondente.

Por exemplo:

+ 1 3 1 0 = 0 1 1 0 1 c2 (igual a sinal e valor abs. e ao comp. para 1) 1310=11012 - 1 3 1 0 = 1 0 0 1 0 c1 +1 = 1 0 0 1 0 + 1 = 1 0 0 1 1 c2

Regra prtica: para converter um nmero negativo para complemento para 2, considera-se a representao em sinal e valor absoluto do nmero positivo correspondente e, comeando pela direita, mantm-se todos os bits at atingir o primeiro 1 (que tambm se mantm). A partir da, invertem-se todos os bits, incluindo o bit de sinal.

Exemplo: 01101000
(+10410 em sinal e valor absoluto)

10011000

(-10410 em complemento para 2)

O cdigo de complemento para 2 tem a vantagem de permitir a representao de 2n nmeros diferentes com cdigos de n bits, aumentando um nmero s representaes anteriores. Estes nmeros variam entre 2n-1 e +2n-1-1.

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

13

3.4

Subtraco binria utilizando cdigo de complementos para 2

Uma das vantagens da utilizao de cdigos de complementos para 2 o facto destes permitirem efectuar subtraces binrias custa da adio de dois cdigos binrios: A - B = Ac2 + Bc2 Para alm de transformar uma subtraco numa adio, este algoritmo vlido mesmo nos casos em que o subtractivo inferior ao subtraendo.

Os nmeros envolvidos na operao devem ser representados utilizando o nmero de bits igual aos exigidos para representar o maior dos nmeros envolvidos. Exemplo 1: 3 -8 310-810=3c2+(-8)c2

3=112 8=10002

+00011c2 +11000c2 11011c2

Resultado: 1 1 0 1 1 c 2 = - 5 1 0

primeiro bit 1 resultado negativo, mas vlido!!

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

14

Exemplo de ocorrncia de transbordo em operaes com complementos para 2: - 1 3 - 1 2 -1310-1210=(-13)c2+(-12)c2 13=11012 12=11002 +10011c2 +10100c2 100111c2 Resultado com 5 bits: 0 0 1 1 1 c 2 = + 7 1 0 Resultado correcto: 100111c2 = -2510
o resultado correcto tem 6 bits, e no 5!

Deteco de overflow

Exemplo 1: 1 3 - 8 13=11012 8=10002 10 0 0 +01101c2 +11000c2 100101c2 Valores iguais: no ocorreu overflow e o resultado correcto tem 5 bits (001012=+510).

Exemplo 2: - 1 3 - 1 2 13=11012 12=11002 00 0 0 +10011c2 +10100c2 100111c2 Valores diferentes: ocorreu overflow e o resultado correcto tem 6 bits e no 5.

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

15

3.5

Aumento da preciso

No caso dos nmeros binrios naturais, o aumento de preciso efectua-se acrescentado simplesmente zeros esquerda.

No caso dos cdigos binrios bipolares a regra no se aplica. Assim:

para os nmeros representados com sinal e valor absoluto, acrescentam-se zeros imediatamente aps o bit de sinal. Por exemplo, 0 1 1 = 0 0 1 1 e 1 1 1 = 1 0 0 0 1 1 , para os nmeros +3 e 3, respectivamente;

para o caso dos complementos para um e para dois, utiliza-se a propagao para a esquerda do primeiro bit, ou seja o bit de sinal. Por exemplo, 0 1 1 c 2 = 0 0 0 0 0 0 1 1 c 2 para o caso do nmero +3 e 1 0 1 c 2 = 1 1 1 1 1 1 0 1 c 2 , para o caso do nmero 3;

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

16

3.6

Cdigo binrio deslocado

Ao contrrio dos casos anteriores, o cdigo binrio deslocado determina-se do mesmo modo para os nmeros positivos e negativos.

Seja N o nmero que pretendemos representar e n o nmero de bits da palavra que se pretende utilizar. O cdigo binrio deslocado obtm-se representando em binrio o resultado da operao: N+2n-1.

Por exemplo, para N=+13 e n= 6 bits: +13 + 26-1=4510

11012

101101

Esta operao pode ser tambm efectuada utilizando partida numerao binria: +13 + 26-1=11012+1000002 Outro exemplo: N= -13 e n= 6 bits: -13 + 26-1=1910 ou -13 + 26-1=-11012+1000002 010011 010011

101101

Tal como o cdigo de complemento para 2, ao atribuir um nico valor a zero o cdigo binrio deslocado permite a representao de 2n nmeros diferentes, utilizando cdigos de n bits. Estes nmeros variam entre 2n-1 e +2n-1-1.
Cdigo de sinal e valor absoluto

Complemento para 1

Complemento para 2

Cdigo binrio deslocado

Decimal

011 010 001 000 100 101 110 111 -

011 010 001 000 111 110 101 100 -

011 010 001 000 * 111 110 101 100

111 110 101 100 * 011 010 001 000

+3 +2 +1 +0 -0 -1 -2 -3 -4

+(2 -1)

n-1

* representao nica do 0

-(2 -1) n-1 -2

n-1

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

17

Formatos dos dados

Existem duas convenes principais de representao de dados: vrgula fixa (inteira ou fraccionria); vrgula flutuante;

4.1

Vrgula Fixa

Os nmeros so representados utilizando um nmero fixo de bits e fixando a vrgula numa posio pr determinada.

No caso da vrgula fixa inteira a vrgula colocada direita do nmero representado, sendo o factor de escala ajustado de modo a compensar esta alterao.

Exemplos:

N. original 11011,010 101,11010 0,11101

Representao 11011010, 10111010, 01110100,

Factor de escala (subentendido) 2-3 2-5 2-8

No caso da vrgula fixa fraccionria o procedimento idntico, sendo a vrgula colocada esquerda do nmero representado.

Exemplos: N. original 11011,010 101,11010 0,11101 Representao ,11011010 ,10111010 ,01110100 Factor de escala (subentendido) 2
5

23 21

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

18

Principais desvantagens da vrgula fixa

1. a adio de dois nmeros pode dar lugar a transbordo (ou seja o resultado no se pode representar correctamente com o nmero de bits utilizados);

2. antes de efectuar uma adio ou subtraco necessrio converter ambos os nmeros ao mesmo factor de escala;

3. a multiplicao de 2 nmeros conduz facilmente a resultados que, para serem representados convenientemente, ou exigem a utilizao de preciso dupla, ou levantam dificuldades na escolha de um factor de escala conveniente;

4. para obter a mxima preciso na soma de vrias parcelas necessrio prever cuidadosamente a ordem de grandeza dos resultados intermdios, para poder enquadrlos com factores de escala que permitam a obteno de um resultado final com um nmero mximo de algarismos significativos.

Exemplo:

a b c d e

, , , , ,
a+(b+(c+(d+e)))

A soma dos cinco nmeros acima representado pode ser efectuada segundo qualquer ordem. No entanto a preciso da operao:

ser superior preciso da operao: (((a+b)+c)+d)+e

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

19

4.2

Vrgula Flutuante

Representao de nmeros de uma forma semelhante utilizada na notao cientfica.


E

s M B

expoente

sinal

Mantissa

Base

sinal representado por um bit, correspondendo o valor 0 ao sinal positivo e o valor 1 ao sinal negativo;

expoente representado por um cdigo binrio deslocado, incluindo o sinal do expoente e logo representado por valores positivos e negativos;

base as bases mais frequentes so a base hexadecimal (16) e binria (2);

mantissa existem duas representaes normalizadas para a mantissa:

mantissa inteira: a vrgula colocada direita da mantissa e o expoente ajustado de acordo com esta operao;

mantissa fraccionria: a vrgula colocada esquerda da mantissa e o expoente ajustado de acordo com esta operao;

Observaes: a ultrapassagem de capacidade d-se no expoente e acontece quando se pretendem representar nmeros demasiado grandes ou demasiado pequenos (neste caso os nmeros so substitudos por zero);

a preciso dos clculos afectada pelo nmero de bits atribudos para a representao da mantissa e pela base escolhida;

a gama dinmica (intervalo entre o menor e o maior nmeros representveis) depende fundamentalmente do nmero de bits do expoente e da base escolhida;

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

20

4.3

O standard IEEE de representao de nmeros com vrgula flutuante.

Esta norma define que os nmeros podem ser representados utilizando palavras binrias de 32 ou 64 bits (respectivamente preciso simples e dupla).

A base utilizada sempre a base 2 e os nmeros so representados custa da definio de 3 valores, j referidos: o sinal, a mantissa e o expoente.

Nmeros representados com preciso simples (palavra de 32 bits)


0 1 8 9 31

Expoente (8 bits) sinal (1 bit)

Mantissa (23 bits)

Nmeros representados com preciso dupla (palavra de 64 bits)


0 1 11 ...... 63

Expoente (11 bits) sinal (1 bit)

Mantissa (52 bits)

Para os nmeros que utilizam preciso simples: Sinal: o sinal representado custa de um bit (que sempre o primeiro da palavra). Nmeros positivos tm este bit a zero e nmeros negativos tm este bit a um.

Expoente: nos nmeros de preciso simples, o expoente representado utilizando 8 bits e cdigo binrio deslocado de 127 (representao em cdigo binrio deslocado com 8 bits). Isto permite a representao de expoentes positivos e negativos.

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

21

Para obter a representao de um determinado expoente, soma-se o valor 127 ao nmero original.

Exemplo: 73

73+127=200=110010002.

Exemplo: a representao do expoente 011001112 01100111 2 =103 1 0 e logo o valor do expoente 103-127=-24.

Para o caso da preciso dupla utilizam-se 11 bits na representao do expoente e um cdigo binrio deslocado de 1023.

Mantissa: fraccionria e normalizada de modo a que a vrgula seja colocada sempre aps o primeiro bit significativo (um) da palavra binria original.

Por exemplo para o nmero 10310 a converso directa para binrio resulta no nmero 11001112, que equivalente a: 1100111,020

A normalizao deste valor implica deslocar a vrgula para a posio aps o primeiro 1, o que exige um ajuste do expoente de modo a que o valor final seja o mesmo:

1100111,020= =1,10011126

Porque o primeiro bit na mantissa normalizada sempre 1, no necessrio armazen-lo explicitamente, guardando-se apenas a palavra correspondente parte fraccionria do valor.

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

22

Exerccio: Represente o nmero decimal 728,75 utilizando a notao IEEE para vrgula flutuante.

1 converso decimal-binrio:

728,7510=1011011000,11

2 normalizao da mantissa: 1011011000,11=1,0110110001129

3 converso do expoente para cdigo binrio deslocado:

9+127=13610=10001000

4 representao em vrgula flutuante (binrio):


1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 expoente Mantissa

5 converso para hexadecimal C4363000h;

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

23

4.4

Gama dinmica

Gama dinmica da representao IEEE de vrgula flutuante:

Preciso simples Preciso dupla

aprox. 3,391038 aprox. 1,7810308

Os maiores nmeros representveis (em valor absoluto) correspondem ao caso em que todos os bits do expoente e da mantissa tm o valor 1.

4.5

Valores especiais

Zero: devido forma de normalizao da mantissa, que obriga utilizao de um 1 no possvel a representao do zero utilizando a metodologia apresentada. Devido a este facto o zero representado colocando todos os bits do expoente e da mantissa a 0 (o bit de sinal indiferente porque 0 = +0);
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Infinito: mais ou menos infinito denotam que foi ultrapassada a gama dinmica num ou noutro sentido e so representados com o expoente todo a um (11111111) e a mantissa toda a zero.
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 0

Indeterminado: representa um resultado indeterminado de uma operao (por exemplo infinitoinfinito ou infinitozero). Representado com o expoente todo a um (11111111) e a uma mantissa com um 1 seguida s de zeros.
0 1 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

NaN (Not a Number): representa um resultado errado de algum modo (por exemplo uma varivel que ainda no tem valor atribudo). Representado com o expoente todo a um (111111112) e a uma mantissa diferente de zero e de um seguido de zeros, por exemplo:
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 1

Escola Superior de Tecnologia e Gesto Sistemas Digitais

Instituto Politcnico de Leiria

24

También podría gustarte