Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aula de Preparao
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
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
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.
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).
Converso binrio-decimal
A converso de binrio para decimal feita directamente pela aplicao do princpio da notao posicional.
10011= =124 +023 +022 +121 +120= =116 +08 = 16 + 0 +04 + 0 +12 + 2 +11 = + 1 =
= 1910
=2,37510
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
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
1.3
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:
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:
1.4
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
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:
1.5
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.
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
2
2.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
Exerccio: 110100,001+101111,1;
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
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.
10
Cdigos binrios bipolares = cdigos binrios que permitem a representao de nmeros positivos e negativos.
3.1
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
+3 +2 +1 +0 -0 -1 -2 -3
(+2 -1)
3-1
2 representaes do 0
-(2 -1)
3-1
11
3.2
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)
Complemento para 1
Decimal
+3 +2 +1 +0 -0 -1 -2 -3
+(2 -1)
3-1
2 representaes do 0
-(2 -1)
3-1
12
3.3
Um dos cdigos binrios bipolares mais utilizados em sistemas computorizados o cdigo de complementos para dois.
Um nmero negativo obtido somando 1 ao bit menos significativo do cdigo de complemento para um correspondente.
Por exemplo:
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
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.
13
3.4
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
Resultado: 1 1 0 1 1 c 2 = - 5 1 0
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.
15
3.5
Aumento da preciso
No caso dos nmeros binrios naturais, o aumento de preciso efectua-se acrescentado simplesmente zeros esquerda.
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;
16
3.6
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.
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
Decimal
+3 +2 +1 +0 -0 -1 -2 -3 -4
+(2 -1)
n-1
* representao nica do 0
n-1
17
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:
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
18
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:
19
4.2
Vrgula Flutuante
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;
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;
20
4.3
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.
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.
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.
22
Exerccio: Represente o nmero decimal 728,75 utilizando a notao IEEE para vrgula flutuante.
1 converso decimal-binrio:
728,7510=1011011000,11
9+127=13610=10001000
23
4.4
Gama dinmica
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
24