Você está na página 1de 12

Roteiro Terico no 2 REPRESENTAO DE DADOS E SISTEMAS DE NUMERAO

A caracterizao lgica, aritmtica, e mesmo eletrnica, das informaes e o uso simultneo dos sistemas de numerao binrio, decimal e hexadecimal so os primeiros grandes desafios para um principiante em tcnicas digitais. Neste texto, discutem-se estruturas primitivas de organizao de dados (bit, nibble e byte), os sistemas usuais de numerao (decimal, binrio, octal e hexadecimal) e as converses de bases. Este contedo muito til, por exemplo, em momentos que interessa relacionar sistemas digitais com linguagens de programao. 2.1 Estruturas Bsicas de Representao de Dados Os computadores atuais e outras mquinas eletrnicas trabalham com sinais eltricos digitais. Grosso modo, tais sinais so aqueles que, observada a amplitude ao longo no tempo, comportam-se e podem ser representados em patamares, sobressaltos ou degraus bem definidos. No caso dos computadores eletrnicos, que s reconhecem como vlidos dois nveis, que, na realidade, so duas estreitas faixas de tenso, os sinais envolvidos so comumente chamados de pulsos. Na tecnologia (ou famlia lgica) TTL (Transistor Transistor Logic = Lgica Transistor - Transistor), por exemplo, os dois valores de tenso especificados para os circuitos digitais binrios ficam, um prximo de zero volt, chamado de nvel BAIXO, e o outro em torno de 5 volts (nvel ALTO). A estes dois nveis de tenso eltrica se fazem corresponder dois smbolos lgicos, usualmente denotados por 0 e 1. Aqui se define o Bit1 (Binary Digit = Dgito Binrio), a mais rudimentar das representaes de dados, podendo assumir um dos dois valores lgicos citados. Este conceito muito importante porque toda uma teoria pode ser desenvolvida sobre casos que consideram genericamente os dois valores lgicos e, depois, ser aplicada a diversas situaes fsicas particulares. Por exemplo, os princpios empregados na minimizao dos antigos circuitos de comutao telefnica a rels so os mesmos dos avanados circuitos integrados de elevadssima escala. Os computadores trabalham com informaes organizadas em estruturas com um nmero especfico de bits. As sequncias mais comuns, em ordem crescente de tamanho, so: o nibble (grupo de 4 bits), o byte (de 8 bits), a word (de 16 bits) e a double word (de 32 bits). Todos estes termos tm seus equivalentes em Portugus, mas seu uso no idioma original (Ingls) j to difundido que inibe qualquer inteno de os traduzir. Os locais de memria, por sua vez, possuem tamanhos padronizados, no h ambigidade (cada local tem seu endereo particular) e nenhuma posio de memria fica realmente vazia, tem sempre um valor presente, mesmo que no esteja associado a processo algum (lixo). 2.1.1 O Bit A menor unidade de dados presente em um sistema eletrnico binrio o bit, que pode assumir um valor lgico ZERO (0) ou UM (1). Um bit (Figura 2.1) pode representar um de dois elementos distintos de um universo binrio considerado. Os valores lgicos, apesar de mutuamente excludentes, ou seja, a presena de um implica na no-ocorrncia do outro, no precisam ter significados opostos como em BAIXO e ALTO (nveis de tenso), ABERTO e FECHADO (condies de um interruptor), APAGADA e ACESA (situaes de uma lmpada), VERDADEIRO e FALSO, DENTRO e FORA, MACHO e FMEA, CERTO e ERRADO etc. Por exemplo, o conjunto representado pode ser composto de valores como AMARELO e AZUL, ou at mesmo BICICLETA e DINHEIRO, dois itens2 sem patente correlao. Em outras palavras, o significado de uma representao depende sempre de um contexto.
Figura 2.1 Uma Forma de Visualizao para o Bit (X pode ser 0 ou 1). X

1 2

Bit uma palavra inglesa que significa pedacinho. A escolha deste acrnimo parece proposital. Item um grupo de dados que representa um valor particular (s vezes, campo).

Eletrnica Digital

A correspondncia dos elementos representados com os valores lgicos arbitrria, podendo ser adotado, por exemplo, o ZERO para uma lmpada ACESA e, consequentemente, o UM para a lmpada APAGADA. A questo crucial , realmente, o limite da quantidade de diferentes valores possveis de se representar com um nico bit: apenas dois. a maioria das situaes requer muito mais que dois valores. Normalmente, so utilizados grupos mltiplos do bit simples, os quais so descritos a seguir. 1.2 O Nibble O Nibble3 um grupamento de quatro bits (Figura 2.2) que pode, portanto, carregar um valor binrio de 0000 a 1111, totalizando 16 diferentes combinaes (Tabela 2.1). Observe-se na Figura 2.2, a numerao adotada para os bits de um nibble, da direita para a esquerda, a partir do Bit 0, conveno seguida em todo este texto. O Bit 0 chamado de LSB (Least Significant Bit = Bit Menos Significativo) e, no caso do nibble, o Bit 3 o MSB (Most Significant Bit = Bit Mais Significativo).
Figura 2.2 Visualizao de um Nibble (Valor Ilustrativo: 0111). (MSB) 3 0 2 1 1 1 0 1 (LSB)

Esta uma estrutura de dados particularmente interessante para dois casos de representao: a dos dgitos que formam os nmeros BCD (Binary Coded Decimal = Decimal Codificado em Binrio) e a dos dgitos que formam os nmeros hexadecimais. Interessante porque os nmeros na forma binria podem gerar combinaes extensas e, como nesses dois casos possvel uma converso automtica, so viabilizadas representaes numricas mais compactas. fcil notar na Tabela 2.1 que um dgito BCD pode codificar um dentre dez valores diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8 e 9), o que requer a aplicao dos quatro bits, apesar de sobrarem seis combinaes (no-utilizadas). A representao de um algarismo hexadecimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, e F) tambm usa os quatro bits, neste caso, sem sobrar combinaes. Em suma, qualquer um dos distintos dezesseis dgitos hexa ou dos dez algarismos decimais pode ser representado binariamente com um nico nibble e, assim, cadeias binrias, geralmente compridas, podem ser condensadas em pequenas sucesses hexa ou decimais (se era BCD). As converses entre representaes esto mais detalhadas na seo de Sistemas Usuais de Numerao.
Tabela 2.1 Correspondncia entre Representaes. Combinao Binria 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hexa 0 1 2 3 4 5 6 7 8 9 A B C D E F

Algarismos Decimais Codificados em Binrio (BCD)

Restante dos Algarismos Hexadecimais

Nibble seria traduzido como mordidela, algo parecido com o formato de uma mordida com os quatro incisivos.
REVISO JULHO 2012

Representao de Dados e Sistemas Numricos

2.1.3 O Byte Quando se pergunta pela quantidade de memria de uma mquina, a resposta vem, certamente, em nmero de bytes (ou de megabytes, gigabytes). O Byte uma seqncia de oito bits ou de dois nibbles justapostos, que correspondem a dois dgitos hexadecimais. a unidade padro para as operaes com a memria4 e com os dispositivos de I/O (Input/Output = Entrada e Sada). Os bits em um byte so normalmente numerados de zero a sete (Figura 2.3), seguindo a mesma conveno anteriormente empregada para o nibble. Os Bits de nmero 0 a 3 compem o LON (Low Order Nibble = Nibble de Baixa Ordem) e os Bits de 4 a 7 formam o HON (High Order Nibble = Nibble de Alta Ordem).
Figura 2.3 Os Bits e Nibbles de um Byte (Valor Ilustrativo: 10110101). (MSB) 7 1 6 0 5 1 4 1 3 0 2 1 1 0 0 (LSB) 1

(HON)

(LON)

Com uma estrutura de oito bits, podem ser representados 256 valores diferentes as 28 combinaes dos estados individuais desses 8 bits. O armazenamento de cdigos de caracteres um dos mais importantes usos para o byte: os caracteres (digitados, exibidos ou impressos) possuem representaes numricas. Por exemplo, quando se pressiona a letra r no teclado, o sistema transfere o sinal correspondente a essa tecla para a memria e define um byte com 01110010b (72h) numa localizao interna, para representar o caracter, apesar de, para o processador, ser apenas uma representao numrica. Para manter a compatibilidade e facilitar a comunicao com outros ambientes, o IBM PC adotou as 128 combinaes do conjunto ASCII-padro, obtidas mantendo-se o oitavo bit (MSB) em 0 (resetado) e fazendo-se variar os outros 7 bits. Este conjunto inclui caracteres numricos, alfabticos e simblicos, associados originalmente ao teclado das mquinas de escrever, alm de alguns caracteres de controle utilizados na comunicao entre dispositivos ou entre mquinas. Outra situao em que o Byte amplamente usado na representao de valores dentro de conjuntos que no excedem os 256 elementos, como nmeros naturais na faixa de 0 a 255 (0FFh) e nmeros inteiros no intervalo de 128 a +127. Um byte pode, portanto, carregar um valor absoluto mximo de 255 em decimal (11111111 em binrio, ou 0FF em hexadecimal5. Os nmeros naturais (no-sinalizados) so representados pelo prprio valor binrio escrito nos bits do byte, por exemplo, 10000111 = 135. Para os valores inteiros (sinalizados) adota-se a notao de complemento-a-dois, reservando-se o Bit 7 para o sinal, por exemplo, a mesma sequncia 10000111b representa o valor 121 negativo. Estas converses ficaro mais compreensveis depois de se estudar os nmeros sinalizados no roteiros das operaes. Por enquanto, so apenas informaes relativas s estruturas de dados. Um byte pode tambm ser empregado para armazenar dois dgitos BCD (possibilitando codificar nmeros decimais de 0 a 99). sempre oportuno lembrar que o significado de uma representao depende do contexto. Por exemplo, se o programa define e emprega o dado representado pelo byte 01100001 em uma operao aritmtica, ele entra como valor numrico equivalente a 97, ao passo que, se for utilizado numa operao de sada de caracter, este byte significa a letra a. Em outros casos, poderia ser parte de uma instruo ou endereo. Cada item deve, portanto, ser utilizado com um propsito bem definido, consistente. Faixas de Valores importante destacar a quantidade mxima de informao que pode ser representada em uma estrutura binria. Um bit suficiente para armazenar apenas uma informao que possa assumir um de dois valores, por isso, foram estabelecidas as colees (cadeias) de bits para estender a capacidade de armazenar e representar informao (como nmeros, letras e caracteres especiais) nos sistemas digitais. Se cada bit individual pode armazenar 0 ou 1, cada posio no byte pode conter um destes
Cada byte ocupa um pacote de oito bits consecutivos ao qual est associado um endereo exclusivo. A notao hexadecimal poderia ser feita simplesmente com dgitos hexa, seguidos de h, por exemplo, FFh, mas, por conveno, quando o primeiro dgito literal, acrescenta-se um zero esquerda (0FFh).
5 4

REVISO JULHO 2012

Eletrnica Digital

dois valores e, como so oito posies, usando anlise combinatria, o nmero total de valores diferentes que podem ser representados em um byte expresso por:
N = 2 8 = 2.2.2.2.2.2.2.2 = 256

Genericamente, em uma estrutura de n bits, so possveis 2n combinaes, as quais podem representar valores de 0 a 2n 1 (no-sinalizados) ou de 2n1 at +(2n-1 1). A Tabela 2.2 resume as quantidades possveis e as faixas para nmeros representados, de acordo com cada estrutura bsica.
Tabela 2.2 Capacidade de Representao das Estruturas de Dados Primitivas. Estrutura Bsica Bit Nibble Byte Word DWord Faixa de Valores Decimais Representados Tamanho Combinaes (N) (n, bits) No-Sinalizados Sinalizados 1 2 0e1 -1 e 0 4 16 De 0 a 15 De -8 a +7 8 256 De 0 a 255 De -128 a +127 16 65536 De 0 a 65535 De -32768 a +32767 32 4294967296 De 0 a 4294967295 De 2147483648 a +2147483647

2.2 Sistemas Numricos Usuais Um sistema de numerao encerra um conjunto de regras que permitem representar quantidades e com elas operar, obtendo sempre resultados numericamente equivalentes, mesmo que se apresentem em formatos diferentes. Os sistemas numricos mais evoludos so posicionais e ponderados, ou seja, utilizam smbolos primrios, denominados dgitos ou algarismos, para formar as representaes mais complexas, chamadas de numerais, e obedecem a um princpio em que cada posio ocupada pelo algarismo tem seu valor ou peso particular. A origem e o desenvolvimento dos sistemas numricos se deve caracterstica do ser humano de buscar constantemente o controle sobre o ambiente sua volta. Neste sentido, a contagem foi a primeira faculdade mental desenvolvida. Contar acrescentar 1 ao valor atual, para cada elemento tomado do conjunto. Num processo de contagem, usando um sistema posicional, cada vez que uma unidade de uma determinada posio, ou ordem, atinge o valor adotado por base, gerada uma unidade de ordem imediatamente superior. Por exemplo, a evoluo da contagem dos elementos do conjunto da Figura 2.4, na base oito, mostra a transio do stimo para o oitavo, zerando a posio das unidades e propagando 1 para as octenas. Assim, o oitavo elemento recebeu a denotao 108 (melhor ler um - zero porque est na base 8). possvel observar algo semelhante do 15o elemento para o 16o, passando de 178 para 208.
Figura 2.4 Evoluo de Contagem, em Diferentes Bases. Elementos do Conjunto * ** *** **** ***** ****** ******* ******** ********* ********** *********** ************ ************* ************** *************** **************** ***************** ****************** Contagem Octal Hexa 1 1 2 2 3 3 4 4 5 5 6 6 7 7 10 8 11 9 12 0A 13 0B 14 0C 15 0D 16 0E 17 0F 20 10 21 11 22 12

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

Binria 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010

REVISO JULHO 2012

Representao de Dados e Sistemas Numricos

No mundo moderno h muitos contadores que podem ser lembrados para ilustrar estas transies, apesar de seus mostradores serem apenas decimais. Um relgio digital, por exemplo, tem seu contador de minutos em base 60, como se fosse um nico dgito de dois smbolos decimais variando de 00 a 59. Cada vez que passa de 59, acrescenta 1 ao dgito das horas que, por sua vez, em base 12, varia de 00 a 11 ou, em base 24, de 00 a 23. A grande novidade na contagem ilustrada na Figura 2.4 a presena dos dgitos hexadecimais. Como os smbolos j conhecidos do sistema decimal, que vo do 0 a 9, no so suficientes para representar dezesseis algarismos hexadecimais, foram adotadas 6 letras do alfabeto (A, B, C, D, E e F) para suprir esta necessidade. Uma primeira observao interessante: no sistema hexadecimal, depois do FF vem o 100 (que no cem). O sistema numrico empregado no cotidiano, como referncia para os clculos matemticos, o decimal. Este sistema se popularizou pelo fato de cada ser humano poder carregar sua base (nas mos) para qualquer lugar que fosse: ficou fcil contar e efetuar outras operaes utilizando o conjunto dos dez dedos como um poderoso baco. Se o nmero de dedos humanos fosse outro, certamente seria tambm diferente o sistema numrico usual adotado. J no se conta nos dedos, mas, com todas as facilidades de representao e os confortveis algoritmos de operaes aritmticas que foram desenvolvidos para a base 10, muitas contas so efetuadas to automaticamente que parece impossvel imaginar-se usando um outro sistema. Parecia! Infelizmente, o sistema decimal no conveniente para processar informaes nas mquinas eletrnicas porque seria impraticvel representar diretamente seus smbolos bsicos com tantos diferentes nveis eltricos, quer dizer, seria inexeqvel codificar e interpretar dez nveis (degraus) distintos da grandeza eltrica representativa. Os modernos sistemas de computao representam valores numricos, usando tipicamente o sistema de numerao binrio, porque mais seguro para os circuitos do computador terem que decidir apenas entre 0 e 1. Um computador, portanto, opera em binrio, detectando a presena de um ou de outro nvel de tenso para reconhecer um bit. Trabalhar com apenas dois nveis ou estados LIGADO e DESLIGADO mais garantido, minimiza os erros de interpretao e simplifica os circuitos, apesar de tornar as representaes mais longas, por usar um sistema de numerao onde as variaes (ver contagem da Figura 2.4) so muito mais rpidas que no decimal. Para se estabelecer a comunicao numa forma mais concisa, conveniente fazer a representao em um sistema de base maior e, no podendo ser o decimal, pela complexidade das converses, a escolha recai sobre um sistema que permite a converso direta, cuja base uma potncia de dois (dezesseis, no caso). Sobrou para o programador de linguagem de montagem o inconveniente de ter que lidar, simultaneamente, com trs sistemas de numerao: binrio, decimal e hexadecimal. Felizmente, este pequeno transtorno significativo apenas no incio dos estudos, at se descobrir que o modo de se expressar um nmero em uma base segue o mesmo princpio posicional de qualquer outra. Assim, muitas habilidades j desenvolvidas para o sistema decimal podem ser adaptadas para se dominar os sistemas binrio e hexadecimal, mas preciso primeiro romper com a imagem mental da representao em base 10, para se evitar maiores confuses. 2.2.1 O Sistema Decimal O sistema de numerao decimal (base 10) o mais familiar dos sistemas posicionais e, por ser to costumeiro, seu uso automatizado esconde importantes princpios, que sero aqui revistos e estendidos aos outros sistemas. O conceito de posio, bem visvel nos nmeros de base dez, o mais fundamental desses princpios. Num numeral decimal, a primeira posio inteira (da direita) representa as unidades simples, de peso 100 = 1, a segunda posio, imediatamente esquerda, representa as dezenas, de peso 101 = 10, a terceira posio representa as centenas (peso 102 = 100) e assim por diante. Cada dgito decimal pode assumir um dos 10 valores absolutos de 0 a 9. O valor relativo do dgito igual ao seu valor absoluto multiplicado pelo seu peso ou valor de posio. O nmero representado a soma de todos os valores relativos. Assim, o nmero 1987 engloba + + + 7 unidades simples (7.100 = 7) 8 dezenas (8.101 = 80) 9 centenas (9.102 = 900) 1 milhar (1.103 = 1000)

Por extenso, HUM MIL, NOVECENTOS e OITENTA e SETE.

REVISO JULHO 2012

Eletrnica Digital

Genericamente, um nmero decimal inteiro de n+1 algarismos pode ser escrito como
An An 1 ...A2 A1 A0 = An 10 n + An 1 10 n 1 + ... + A2 10 2 + A1 10 + A0

Considerando os n+1 algarismos inteiros e outros k algarismos na parte fracionria,


N=
n

i =0

Ai 10 i +

A
j =1

10 j

onde: i a posio do dgito inteiro, contada de 0 a n, a partir da vrgula decimal, da direita para a esquerda; j a posio do dgito fracionrio, de 1 a k, a partir da vrgula decimal, da esquerda para a direita; Ai um dgito da parte inteira na posio i e A-j um dgito da parte fracionria na posio j. A vrgula colocada para separar a parte inteira (representada no primeiro somatrio) da parte fracionria (segundo somatrio). Cada dgito que aparece esquerda da vrgula decimal representa um valor entre zero e nove (o que estiver expresso no algarismo), multiplicado por uma crescente potncia positiva de dez, cujo expoente dado pelo nmero de ordem, iniciando em 0 (para as unidades simples). Do outro lado, um dgito considerado direita da vrgula representa um valor entre zero e nove vezes uma crescente potncia negativa de dez. Por exemplo, o nmero 45,607
4 10 1 + 5 10 0 + 6 10 1 + 0 10 2 + 7 10 3

Estes conceitos, estendidos para nmeros de uma base b (genrica), resultam na equao geral do posicionamento, uma ferramenta muito utilizada para se converter um nmero dado em uma base qualquer para o sistema nativo das operaes. A equao do posicionamento tem a seguinte forma:
N=

A b + A
i i i =0 j =1

b j

2.2

Sistema Binrio

O sistema de numerao binrio trabalha exatamente como o sistema decimal, mas com dgitos apenas, 0 e 1, e com potncias de dois na equao do posicionamento. O computador representa os valores lgicos usando dois nveis de tenso, que correspondem aos dois dgitos binrios. Intimamente, os bits tm apenas significado lgico, mas a construo dos circuitos e o contexto da aplicao podem simular significado matemtico. A maioria dos circuitos formada de dispositivos digitais binrios, projetados para representar valores, nmeros e outras quantidades, primitivamente em formato binrio. Conforme anteriormente mencionado, os computadores usam este sistema porque, tendo que reconhecer apenas dois nveis de tenso, os circuitos eletrnicos ficam mais simples e confiveis. Converso Binrio Decimal Em linguagem de montagem frequente a necessidade de se converter nmeros de binrio para decimal. Sem usar a calculadora eletrnica ou o programa Calculadora do computador, so vrios os algoritmos de converso disponveis, todos baseados na equao posicional (somatrio de cada dgito multiplicado por 2 elevado potncia correspondente sua posio relativa), mas, por conciso, foram selecionados apenas alguns processos manuais para se detalhar neste material. Uma maneira fcil de converter um nmero de binrio para decimal utiliza o princpio do posicionamento e os pesos tabelados (Tabela 2.3). O valor de um nmero binrio baseado na presena de bits 1 e em seus respectivos valores de posio; onde h um algarismo 0, no tem valor relativo. Para cada 1 da representao binria, soma-se 2n, onde n a sua posio. Por exemplo, o binrio 10110010,01 convertido somando, de acordo com a Tabela 2.3

REVISO JULHO 2012

Representao de Dados e Sistemas Numricos

128 + 32 + 16 + 2 + 0,25 = 178,25


Tabela 2.3 Valores de Posio de Dgitos Binrios. Posio do Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Peso Decimal 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 Posio do Bit -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 Peso Decimal 0,5 0,25 0,125 0,0625 0,03125 0,015625 0,0078125 0,00390625 0,001953125 0,0009765625 0,00048828125 0,000244140625 0,0001220703125 0,00006103515625 0,000030517578125 0,0000152587890625

Outro processo interessante, esquematizado na Figura 2.5, usa repeties de multiplicao do algarismo atual pela base e soma com o prximo, da esquerda para a direita at chegar s unidades simples, para gerar a parte inteira. Sucessivas divises pela base (da direita para a esquerda) e soma com o prximo, at chegar vrgula, geram a parte fracionria. O nmero convertido a soma das duas partes (inteira e fracionria).
Figura 2.5 Esquema de converso binrio - decimal, por repeties.

1 0 1 1 0 0 1 0
2 2 +0 2 +1 5 11 22 44 89 178 4 10 22 44 88 178 178,25

0 1
0,5 +0 2 0,25 0,5

Converso Decimal Binrio Um dos mtodos utilizados para converter de decimal para binrio consiste em encontrar as potncias de dois que teriam sido somadas para produzir o resultado decimal. Comea da maior potncia de dois que cabe no nmero e, sucessivamente, subtrai-se (quando possvel, associando um algarismo binrio 1, quando no, o dgito 0), at chegar a 20. Usando a Tabela 2.3 e considerando, por exemplo, o valor decimal 3609,25, a maior potncia de dois abaixo dele 211 = 2048. Subtraindo-se 2048 de 3609 (depois se converte a parte fracionria), resulta em 1561, e o valor binrio comea da esquerda (MSB) com 1. O resultado binrio provisrio (adotando a sigla RBP) 1 e o resto decimal (RD) 1561. A prxima potncia de dois imediatamente mais baixa 210 = 1024: o RD fica valendo 537 (1561 1024) e o RBP, 11. Continuando, 537 menos 512 (29) resulta em 25 (RD), tornando o RBP = 111. Agora, 28 = 256 maior que o RD. Ento, no podendo subtrair, acrescenta-se um 0 ao RBP para continuar a formao do binrio, ficando o RBP com 1110 e o RD ainda 25. A prxima potncia mais baixa de dois 128 (27). Pelo mesmo motivo da etapa anterior, acrescenta-se um dgito 0, RBP = 11100. Na sequncia, 64 (26) > 25, RBP = 1110000, RD = 25. Depois, 25 (32) > 25, RBP = 1110000, RD = 25. Agora, possvel subtrair 24 (16) de 25, resultando RD = 9 e RBP = 11100001. Continuando, 9 23 = 1 (novo RD) e RBP = 111000011. Do RD = 1, no d para se tirar 22 (4), nem 21 (2), resultando no acrscimo de dois zeros ao RBP, 11100001100. Finalmente, considerando o ltimo RD (1) como o LSB, a parte inteira do nmero convertido fica sendo 111000011001. A parte
REVISO JULHO 2012

Eletrnica Digital

fracionria segue o mesmo raciocnio: de 0,25 impossvel se tirar 0,5 (primeira potncia negativa de 2), por isso, acrescentando zero, o nmero binrio provisrio 111000011001,0. Subtraindo-se 0,25 (segunda potncia negativa de 2) de 0,25, resulta 0 (sinal de que a converso estar completa assim que se acrescentar o 1 representao). O nmero binrio 111000011001,01. Neste exemplo, o processo teve um final, chegando-se representao exata do nmero em binrio. Na maioria dos casos a converso da parte fracionria leva a uma dzima peridica, sendo oportuno truncar o nmero em uma estrutura de nmero de bits fixo. Outro mtodo usual de converso decimal - binrio emprega divises sucessivas por 2 para a parte inteira, guardando o resto como um dgito binrio e o quociente inteiro como o prximo nmero a ser dividido (at que o quociente seja zero). Para a parte fracionria, empregam-se multiplicaes sucessivas por 2, conforme esquematizado na Figura 2.6. A parte inteira da representao composta, apondo-se os restos na ordem inversa que foram encontrados; a parte fracionria do nmero convertido montada com os estouros de multiplicao na ordem em que apareceram. Figura 2.6 Esquema de Converso Decimal - Binrio, por Operaes Sucessivas.
Parte Inteira 3609 R 1804 1 902 0 451 0 225 1 112 1 56 0 28 0 14 0 7 0 3 1 1 1 0 1 Parte Fracionria F I 2 0,25 0,5 0 0,5 1,0 1 0,0

Nmero Convertido: 111000011001,01

2.2.3 Sistema Octal O sistema octal emprega oito smbolos bsicos (de 0 a 7) para formar seus numerais. A converso entre nmeros binrios e octais pode ser direta, o que prov uma forma condensada de escrever uma cadeia de bits. Atualmente, a utilizao da condensao hexadecimal mais frequente. Converso Octal Decimal O processo de converso de octal para decimal baseado no princpio do posicionamento: somam-se os produtos de cada dgito pela potncia de 8 associada posio dele na representao octal. Algumas potncias de 8 so fornecidas na Tabela 2.4.
Tabela 2.4 Algumas Potncias de 8. Expoente -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 Potncia 0,000244140625 0,001953125 0,015625 0,125 1 8 64 512 4096 32768 262144 2097152 16777216

REVISO JULHO 2012

Representao de Dados e Sistemas Numricos

Considerando, por exemplo, o nmero octal 7524,16, sua converso em decimal, aplicando o princpio do posicionamento e os valores tabelados, fica: 7524,168 = 7.83 + 5.82 + 2.81 +4.80 + 1.8-1 + 6.8-2 = = 7.512 + 5.64 + 2.8 + 4.1 + 1.0,125 + 6. 0,015625 = = 3584 + 320 + 16 + 4 + 0,125 + 0,09375 = 3924,21875 O processo que usa repeties de multiplicaes e divises pela base, semelhante ao que j fora descrito para a base 2, para o mesmo nmero, est esquematizado na Figura 2.7.
Figura 2.7 Esquema de Converso Octal - Decimal, por Repeties.

7 5 2 4
8 +5 56 61 490 3924 488 3920

1 6
1,75 +1 8 0, 75

0,21875 3924,21875

Converso Decimal Octal Um dos mtodos usados na converso de decimal para octal consiste em encontrar a soma dos produtos das potncias de 8 pelos valores absolutos dos dgitos octais, que geram o resultado decimal. Comeando pela maior potncia de 8 abaixo do nmero, determina-se quantas vezes (representa um dgito) tal potncia cabe no nmero e subtrai-se (resto decimal). O processo continua at chegar a 80. Considerando, por exemplo, o valor decimal 7904,215, lendo na Tabela 2.4, a maior potncia de 8 abaixo dele 84 = 4096. No nmero, cabe 1 unidade desta ordem. Subtraindo-se 4096 (14096) de 7904 (a parte fracionria fica para depois), resulta em 3808, o resto decimal (RD), e o valor octal, ento, comea com 1 (Resultado Octal Provisrio, ROP). A prxima potncia de 8 mais baixa 83 = 512: do RD se pode tirar 7 unidades desta ordem (3808 7512), restando 224 e no ROP, 17. Continuando, de 224 possvel subtrair 3 unidades de 82, 224 menos 192 (364) resulta em 32 (RD), tornando o ROP = 173. Com RD = 32, possvel obter-se 4 unidades de 81, sobrando zero. Ento, a parte inteira do nmero convertido fica sendo 17340. A parte fracionria segue o mesmo raciocnio de subtraes sucessivas: de 0,215 possvel tirar 10,125 (primeira potncia negativa de 8), por isso, acrescentando 1 ao nmero octal provisrio, depois da vrgula, fica 37340,1 (ROP). Subtraindo-se 0,125 de 0,215, resulta 0,09 (RD). Neste resto decimal cabem 5 unidades de 8-2 (50,015625 = 0,078125), sobrando 0,011875 e uma representao octal parcial 37340,15. Do ltimo resto encontrado (0,011875), pode-se tirar 6 unidades de 8-3 que totalizam 0,01171875, restando, 0,00015625. O nmero parcialmente convertido 37340,156. Neste exemplo, o processo no tem um final com a representao exata do nmero em octal seria atingida quando o resto fosse zero. A maioria dos casos de converso de parte fracionria leva a uma dzima peridica, sendo necessrio truncar o nmero em uma estrutura de nmero fixo de dgitos. Outro mtodo usual de converso decimal - octal usa divises sucessivas por 8 para a parte inteira , guardando o resto como um dgito octal e o quociente inteiro como o prximo nmero a ser dividido (at que se chegue a zero). A parte inteira do nmero hexadecimal montada com os restos lidos na ordem inversa que foram encontrados. Empregam-se multiplicaes sucessivas por 8 para a parte fracionria, conforme esquematizado na Figura 2.8. parte inteira do nmero convertido acrescentada a parte fracionria, composta dos estouros das multiplicaes na ordem em que apareceram.

REVISO JULHO 2012

Eletrnica Digital Figura 2.8 Esquema de Converso Decimal Hexa, por Operaes Sucessivas. Inteira 7904 R 988 0 123 4 15 3 1 7 0 1 F ,215 ,72 ,76 ... Fracionria 8 1,72 5,76 6,08 ... I 1 5 6 ...

Nmero Convertido Truncado: 17340,156

Converso Direta Binrio Octal Converter um nmero binrio em formato octal fcil, por causa da relao de potncias (8 = 2 ): cada grupo de 3 bits corresponde a um dgito octal. Dado um nmero binrio, por exemplo, 10111010010110, para se obter a sua representao octal, o primeiro passo complet-lo com zeros at conseguir um nmero de bits mltiplo de trs6. Neste exemplo, acrescenta-se um bit 0 esquerda, de forma que a representao ajustada venha a conter 15 bits, 010111010010110. O segundo passo separar de 3 em 3 bits (deveria ser da direita para a esquerda, mas quando mltiplo de 3, tanto faz). Nesse exemplo, resulta 010 111 010 010 110. Finalmente, procuram-se estes valores binrios na Tabela 2.5 e substitui-se cada terno pelo dgito octal correspondente. Assim,
3

010 111 010 010 1102 272268


Tabela 2.5 Correspondncia entre binrio e octal. Combinao Binria 000 001 010 011 100 101 110 111 Dgito Octal 0 1 2 3 4 5 6 7

Converso Direta Octal Binrio A ferramenta mais importante na converso direta de octal para binrio , ainda, a Tabela 2.5, que fornece toda a informao necessria. Para tal, basta inverter o mtodo utilizado na converso binrio octal, ou seja, tomar cada dgito octal e convert-lo para binrio, substituindo-o pelos trs bits correspondentes. Por exemplo, para converter 350418 em binrio, de acordo com a Tabela 2.5, 350418 011 101 000 100 001 10110100001010 2.2.3 Sistema Hexadecimal O sistema hexadecimal emprega 16 smbolos bsicos para formar seus numerais. Cada dgito hexadecimal pode representar um dos dezesseis valores entre 0 e 15. Foram aproveitados os smbolos decimais (de 0 a 9) e adotados seis dgitos adicionais para representar os valores na faixa de 10 a 15, as letras de A at F, na ordem. Como a converso entre nmeros binrios e hexadecimais direta, o sistema hexadecimal prov uma forma condensada de escrever uma cadeia de bits. Isto muito til
Uma alternativa separar de trs em trs bits, da direita (LSB) para a esquerda (MSB) e adaptar o ltimo grupo caso ele no tenha os trs bits.
6

10

REVISO JULHO 2012

Representao de Dados e Sistemas Numricos

porque no sistema binrio as representaes crescem com muita rapidez e se tornam difceis de manejar. Converso Hexa Decimal O processo de converso de hexa para decimal simples, baseado no princpio do posicionamento. Basta calcular o nmero, multiplicando cada dgito (levando-se em conta a equivalncia decimal das letras) pela potncia de 16 associada posio dele na representao hexa e somar os produtos. Algumas potncias de 16 so fornecidas na Tabela 2.6. Considerando, por exemplo, o nmero hexadecimal 8A25,B6, sua converso em decimal, aplicando os valores tabelados, fica: 8A25,B6 = 8.163 + 10.162 + 2.161 +5.160 + 11.16-1 + 6.16-2 = = 8.4096 + 10.256 + 2.16 + 5.1 + 11.0,0625 + 6. 0,00390625 = = 32768 + 2560 + 32 + 5 + 0,6875 + 0,0234375 = 35365,7109375
Tabela 2.6 Algumas Potncias de 16. Expoente -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 Potncia 0,000052587890625 0,000244140625 0,00390625 0,0625 1 16 256 4096 65536 1048576 16777216 268435456 4294967296

O processo que usa repeties de multiplicaes e divises pela base, semelhante ao que j fora descrito para a base 2, est esquematizado na Figura 2.9.
Figura 2.9 Esquema de Converso Hexa - Decimal, por Repeties.

8 A 2 5
16 +10 138 2210 35365 128 2208 35360

B 6
11,375 +11 16 0,375

0,7109375

35365,7109375

Converso Decimal Hexa Um dos mtodos usuais de converso de decimal para hexa consiste em encontrar a soma dos produtos das potncias de 16 pelos valores absolutos dos dgitos hexa, que geram o resultado decimal. Comeando pela maior potncia de 16 abaixo do nmero, determina-se quantas vezes ela cabe no nmero (representa um dgito) e subtrai-se (resto decimal). O processo continua at chegar a 160. Considerando, por exemplo, o valor decimal 12703,35, lendo na Tabela 2.6, a maior potncia de 16 abaixo dele 163 = 4096. No nmero, cabem 3 unidades desta ordem. Subtraindo-se 12288 (34096) de 12703 (a parte fracionria fica para depois), resulta em 415 (resto decimal RD), e o valor hexa, ento, comea com 3 (resultado hexa provisrio, RHP). A prxima potncia de 16 mais baixa 162 = 256: do RD se pode tirar 1 unidade desta ordem, restando 159 (415 256) e no RHP, 31. Continuando, de 159 possvel subtrair 9 unidades de 161, 159 menos 144 (916) resulta em 15 (RD), tornando o RHP = 319. Finalmente, a parte inteira do nmero convertido fica sendo 319F, acrescentando o ltimo
REVISO JULHO 2012

11

Eletrnica Digital

RD (15 = 0Fh). A parte fracionria segue o mesmo raciocnio de subtraes sucessivas: de 0,35 possvel tirar 50,0625 (primeira potncia negativa de 16), por isso, acrescentando 5 ao nmero hexa provisrio, depois da vrgula, fica 319F,5 (RHP). Subtraindo-se 0,3125 (50,0625) de 0,35, resulta 0,0375 (RD). Neste resto decimal cabem 9 unidades de 16-2 (90,00390625 = 0,03515625), sobrando 0,00234375 e uma representao hexa parcial 319F,59. Do ltimo resto encontrado (0,00234375), pode-se tirar 9 unidades de 16-3 que totalizam 0,002197265625, restando, 0,000146484375. O nmero parcialmente convertido agora 319F,599. A representao exata do nmero em hexa seria atingida quando o resto fosse zero, mas neste exemplo, o processo no tem um final. A maioria dos casos de converso de parte fracionria leva a uma dzima peridica, bem visvel neste caso, sendo necessrio truncar o nmero em uma estrutura de nmero fixo de dgitos. Outro mtodo usual de converso decimal - hexa usa divises sucessivas por 16 para a parte inteira , guardando o resto como um dgito hexa e o quociente inteiro como o prximo nmero a ser dividido (at que se chegue a zero). A parte inteira do nmero hexadecimal montada com os restos lidos na ordem inversa que foram encontrados, substituindo-se os maiores que 9 pelas letras correspondentes. Empregam-se multiplicaes sucessivas por 16 para a parte fracionria, conforme esquematizado na Figura 2.10. parte inteira do nmero convertido acrescentada a parte fracionria, composta dos estouros das multiplicaes na ordem em que apareceram, usando as respectivas letras para o caso de dgitos maiores que 9.
Figura 2.10 Esquema de Converso Decimal Hexa, por Operaes Sucessivas. Inteira 12703 R 793 15 49 9 3 1 0 3 Fracionria F 16 0,35 5,6 0,6 9,6 0,6 9,6 ... Nmero Convertido: 319F,599... I 5 9 9 ...

(F)

Converso Binrio Hexa Em geral, uma mquina digital opera com o sistema de numerao binrio, mas algumas comunicaes requerem uma forma mais compacta de representao. O sistema decimal requer converses muito elaboradas, enquanto o hexadecimal apresenta simplicidade de converso de e para binrio, resolvendo melhor o problema da condensao. Neste caso, necessrio que o alvo da comunicao entenda hexa. Converter um nmero binrio em formato hexadecimal fcil, por causa da relao de potncias (16 = 24): cada grupo de 4 bits corresponde a um dgito hexa. Dado um nmero binrio, por exemplo, 101110100101100, para se obter a sua representao hexa, o primeiro passo complet-lo com zeros at conseguir um nmero de bits mltiplo de quatro. Neste exemplo, acrescenta-se um bit 0 esquerda, de forma que a representao ajustada venha a conter 16 bits, 0101110100101100. O segundo passo separar de 4 em 4 bits (deveria ser da direita para a esquerda, mas quando mltiplo de 4, tanto faz). Nesse exemplo, resulta 0101 1101 0010 1100. Finalmente, procuram-se estes valores binrios na Tabela 2.1 e substitui-se cada nibble pelo dgito hexadecimal correspondente. Assim, 0101 1101 0010 11002 5D2C16 Converso Hexa Binrio Os nmeros hexadecimais so compactos, relativamente fceis de ler e de se passar para binrio. A ferramenta mais importante na converso , ainda, a Tabela 2.1, que fornece toda a informao para se converter qualquer nmero hexadecimal em um nmero binrio. Para tal, basta inverter o mtodo utilizado na converso binrio hexa: tomar cada dgito hexadecimal e convert-lo para binrio, substituindo-o pelos quatro bits correspondentes. Por exemplo, para converter 2D0Ah em um valor binrio, de acordo com a Tabela 2.1, 2D0Ah 0010 1101 0000 1010 101101000010102

12

REVISO JULHO 2012

Você também pode gostar