Vous êtes sur la page 1sur 46
Capituto 2 — CONHECENDO MELHOR AS OPERACOES ARITMETICAS 2.1 SISTEMAS DE NUMERACAO Desde muito cedo em sua histéria, a humanidade se deparou com a necessidade de contar, enumerar e ordenar as coisas, 0s animals e até mesmo os outros seres humanos que 0 cercavam. E ndo apenas contar, enumerar e ordenar, mas também registrar estas informagBes de forma clara e precisa. 0 sucesso tanto no comércio quanto nas atividades rodutivas exigia que se pudesse tomar nota das quantidades e valores envolvidos em suas transagbes. No inicio, enquanto os volumes eram pequenos, podia-se adotar um registro simples e direto destas informacdes, normalmente utilizando coisas do cotidiano para representar as quantidades envolvidas. Veja alguns exempios destes registros na Figura 1a seguir Naquela época, era comum ver pastores de ovelhas carregando consigo uma pequena bolsa de couro com tantas pedrinhas quantas fossem as ovelhas aos seus cuidados. NNdo existia ainda a associago de um simbolo fonético ou grafico para as quantidades representadas, mas apenas uma associago de um para um entre as ovelhas e as pedras. Figura 1~Exempls de regstos be contagensfetos pela antigas cilzagbes Este recurso, por mais simples que possa parecer, permitia a estes homens controlar seus rebanhos, descobrindo, ao fim de um dia, se alguma ovelha havia se desgarrado, ou ainda se uma operacao de troca de ovelhas por outras mercadorias seria ou no vantajosa para ele. Com 0 passar do tempo, entretanto, 0 avango natural nos volumes dos negécios , por conseguinte das quantidades de animais e objetos envolvidos, obrigou que se laborasse um sistema mais eficiente para registrar e contabilzar estas transagBes. 18 no cera mais possivel associar convenientemente uma pedra em uma sacola ou um né em uma corda para cada um dos elementos envolvides nas transagies. 0s egipcios' foram os primeiros que se tem noticia a adotar um sistema gréfico ‘estruturado de tal forma a permitiro registro simples e claro de grandes quantidades de ‘elementos através de um pequeno nimero de simbolos. 4°65 7 8 9 10 100 1.000 10.000 100.000 1.000.000 Figura 2-Simbolosadotadas no sistema de numerag3oegioco Fm sua representago, conforme podemos ver na Figura 2, os egipcios utilzavam der simbolos distinto para representar valores entre 1 €9 e, a partir dai, mais seis simbolos para representar valores da forma 107, comn 21 No sistema egipcio, de igual modo a0 que fazemos hoje em dia, o valor total representado era calculado a partir do somatério dos valores atribuidos aos sfmbolos utlizados.€ isto, por si s6 j simplificava em muito a forma de registrar e manipular com as Jnformages numéricas. Foi no norte da in por volta do século V da era cist, que provavelmente surgi Co sistema de representagio que utiizamos atualmente. Por ter sido largamente empregado pelos érabes, os quals 0 introduziram na Europa, este ficou conhecido como sistema de numeracSo Hindo-Ardbico. A Figura 3 a seguir nos traz um exemplo dos simbolos gréfcos utlizados no sistema Hindo-Arabico e sua evolugdo até 0s nossos dias. Figura 3—Evolugo da rata dos simbolos do sistema Hindo-Arbleo até 0s nossos das Fr Diferente dos demais sistemas numéricas existentes & époce, o sistema Hindo- Acdbico [6 langava mio de um recurso matemético conhecide hoje como base numérica, ‘exatamente nos mesmos moldes que adotamos hoje em dia, No sistema Hindo-Arébico, todo e qualquer valor numérico podia ser representado utlizando apenas 10 simbolos elementares, utlizando um outro recurso matemtico que depois ficou conhecido como notacéo posicional. Voce sabe o que é uma base numérica? E a notacio pasicional, vocé sabe jé ouviu falar dela? Sab como ela funciona? Pois bem, é isto 0 que vamos descobrir na continuagio deste capitulo, 2.2 BASE NUMERICA Denominamos como base numérica a0 conjunto de simbolos utilzados pare representar valores numérico. De um modo geral podemos dizer que as bases numéricas mais importantes so: » Base decimal, com de2 simboios (0,1, 2,3, 4,5, 6, 7,8, 9}, » Base bindria, com dois simbolos (0, 1), » Base octal, com oito simboles (0,1, 2,3, 4,5, 6, 7} » Base hexadecimal, com dezesseis simbolos (0, 1,2, 3, 4, 5,6,7,8, 9,4, 8,C,D,E,F}. Destas, a mais importante, sem dlivida nenhuma, é@ base decimal. Sus mportancis 6 tamanha que desde pequenos aprendemos a associar os seus elementos com os dedos de rnossas préprias mos. Experimente perguntar a uma crianga na pré escola qual a sua idade, ‘ede pronto ela Ihe estenderd as mBaainhas mostrando nos dedos quantos aninhos jé tem, Figura 4~Associagdo dos nimeros com os dedos da mio Mas, 0 que define uma base numérica? Serd que nés mesmos podemos detinir a ‘nossa prépria base numérica? Que regras devemos seguir para definir uma base numérica? Para que um conjunto de simbolos possa ser considerado uma base numérica, ele deve ser formado de modo a atender algumas regras bésicas de construcdo: » Cada elemento do conjunto deve estar associado @ um valor numérico, auma relago de um para um. Ou seja, cada simbolo deve estar associado @ um nico valor numérico e vice-versa, » 0 conjunto deve possuir no minimo do's simbolos, um para representar 0 zero & ‘outro para representar 0 um. » No devem existirlacunas na representaglo, ou seja, se um conjunto possuir representacBes para os valores n € +2, ento este mesmo conjunto também deve possuir uma representario para o valor n+1, Respeltadas estas regras, podem-se construir bases numéricas com tantos simbolost quantos se fayam necessérias. Mas, pensemos um pouco, “por que se dar 30 trabalho de definir outras bases numéricas se a base decimal, aparentemente, jé resolve todos 0s nossos problemas?” Avverdade & que as bases numéricas s80 definidas para simplficar o dia a dia de ‘quer as utiliza. Mesmo sem perceber, constantemente estamos lancando mo de outras bases numéricas. Por exempla, imagine as horas do die, voc8 ja percebeu que normalmente nds contamos as horas utilizando uma base com apenas 12 elementos? Pois &, mesmo sabendo que o dia tem 24 horas, parece-nos bem melhor pensar em termos de duas séries de 12 horas, uma comegando a meia noite e indo até o meio cia, e outra comecando 30 meio dia€ indo até a meia noite, Como voc® iré perceber um pouco mais frente, foi o desenvolvimento do estudo das bases numéricas que permit o desenvolvimento dos computadores digitals como nés fs conhecemos hoje em dia. [Agora, pense um pouco, que outras bases numéricas voc® pode identificar em suas atividades cotidianas? Que tal uma base com 60 elementos, 36 para comecar? "Mas, como sera que funciona uma base numérica? Seré que existe alguma relagdo entre as diversas bases numéricas existentes? Isto e muito mais é o que vamos descobrir 2 partir de agora com a cantinuagio do nosso estudo, 2.3 BASES NUMERICAS E A NOTACAO POSICIONAL Para entender como funciona uma base numérica @ a notacSo posicional, vamos tomar como exemplo a base decimal. Uma ver que temos der simbolos nesta base, podemos facilmente utilzé-os para representar conjuntas com até nove elementos. Observe a Figura Sa seguir Figura 5~Associagdo entre os elementos da base decimal e valores de contagem Observe, entretanto, que um problema surge quendo precisamos registrar valores ‘para os quals no temos um simbolo associado na base, como, por exemple, © que vemos na Figura 6 a seguir Bos % (fig) BS gy Figura 6~Como ogistraremos esta quantia com a base decimal? Como faremos para registrar os dove elementos desta figura ublizando estritamente (0s simbolos contidos na base decimal? [Ah, vocé pode estar pensando - Esta é facil, basta utilizar os simbolas 1 e 2, exatamente nesta sequéncia e pronto, teremos a representagio da quantidade de elementos constante nesta figura. ‘Se vocé pensou assim, é claro que a sua resposta esta correta, Entretanto, pense um pouco mais Se olharmos para a base decimal, veremos que os simbolos que estamos utlzando representam lteraimente uma unidade seguido de duas unidades. Isto em nada se parece com as doze unidades que estamos querendo representar. De onde entdo tramos a ideia ue se utlizarmas estes dois sfmbolos em conjunto, exatamente da forma como fizemos, estaremos criando uma representa¢do para a quantidade de elementos constantes naquela figura? [A resposta 6 a0 mesmo tempo simples e complexa. Mesmo sem perceber, para cexpressar valores que no se encontram representados diretamente na base, langamos mo de um recurso matemitico inventado pelos indianas denominado Notagdo Posicional £ 0 uso da notagao posicional que nos permite dizer que 0 1 do niimero 12 vale uma dezena e no urna unidade, o qual somado as duas unidades representadas pelo 2 nos 1d8 como resultado os doze elementos que estavamos querendo representar. AA ide'a por trés da notardo posicional € extremamente simples © pode ser facilmente llustrada pela observacdo do que ocorre quando contamos as horas em um rel6gio com ponteiros. ‘Observe que um dia tem vinte e quatro horas e um relégio com pontelros possui ‘apenas dove marcagées, indo do 1 a0 12. Desta forma, apés contarmas as 12 primeiras horas do aia, acabamos retornando 20 nosso ponto de partida, em um processo conhecido como cestouro da base. Nesta situacSo, se continuarmos contando, simplesmente perderemos a referéncia de que horas realmente estamos registrando’. No caso do relogio, isto se resolve associando 3 informagso indicada nos ponteiros com uma informaclo adicional que ingica se esta é a primeira ou a segunda volta que este ‘executa no dia. Normalmente, quando os ponteiros retornam a0 ponto de partida nds, ou ‘adicionamos 12 30 valor indicado, como podemos ver na Figura 7 seguir, ou simplesmente adicionamos uma informagio de que sBo tantas horas da manh, da tarde ou da noite. Beg 18 2 14 2 15 20\ Ae ws Figura 7—Que horas sio neste relia? 10 horas e dex minutos ou 22 horas € 10 minutos? ‘Ainda que extremamente simples, esta observaclo adicional indicando quantas voltas 0 ponteiro do reldgio jd efetuou & o elemento chave para a compreensio do como funciona ume base numérica e.o mecanismo da notagéo posicional ‘Vamos agora tentar estender esta ideia para a base decimal. 2.4 BASE DECIMAL Considere a Figura 8a seguir. ela temas uma representagao da base decimal imitando as horas de um relégio. Figura 8—RepresentagSo esquemética da base decimal Tentemos agora utilizar este nosso disco para contar de zero até cer, CComecemos no ze70 e, a cada ndmero que contarmos avancemos 0 nosso ponteiro de uma posigSo. Perceba que podemos contar de zero a nove sem problemas, mas a0 cchegarmos ao dez, 8 semelhanga do que ocorre com os ponteiros de um relégio 20 indicar (© meio dia ou a meia noite, ocorre um estouro da base, e retornamos a0 nosso ponto Inicial, perdendo assim a nossa referéncia de contagem. Se continuarmos contando, no hhaverd nenhuma forma de indicarmas claramente a que numero estamos nos referindo simplesmente pelo que estamos apontando em nosso disco, Desta forma, a fim de evitar esta confusio, incluiremos um segundo disco ‘numerado, semelhante ao primeiro, no qual contaremos quantas votas 0 primeleo disco jé efetuou. ‘Uma vez que este cisco adicional contaré quantas vezes o primeiro disco contou até dz, chamarthe-emos de disco das dezenas. Ao primelro disco chamaremos de disco das unidades. Por convencSo, 0 disco das unidades ficaré a direita do disco das dezenas. (© nosso novo esquema ficaré conforme indicado na Figura 9a seguir. Dezenas Unidade Figura 9~ Novo esquema de representacdo pare contagem de dezenas e unidades, indicando 3 contagem de dez elementos Poderos assim continuar nossa contagem, de tal forma que a cada volta completa do disco das unidades, avancaremos o disco das dezenas de uma posigio. Ou seje, sempre ue acorre um estouro da base no disco das unidades, dizemos que ocorre um “vai um®™ para o disco das dezenas. Este esquema funciona muito bem até chegarmos & contagem noventa e nove. Neste ponto percebemos que o disco de dezenas também esté preste a completar uma volta completa, de tal forma que corremos o risco novamente de perder nossa referéncia, Por sorte, podemos adotar 0 mesmo artificio [é utiizado anteriormente com 0 disco das unidades, e incluir um novo disco para contar quantas voltas 0 disco das dezenas completou. A este novo disco chamaremos de disco das centenas. Nosso esquema ficard como representado na Figura 10 a seguir. Centenas Unidade Figura 10~ Esquera com discos para a centenas, dezenase unidades,indicando a contager de cem elementos Perceba que este arificio de incluir um novo disco para contar quantas voltas 0 disco anterior completou pode continuar indefinidamente, de forma que pademos ineluit tantos discos quantos sejam necessérios, 8 medida que formos precisando. ‘Acontagem total representado pelos nossos discos poder ser faciimente verificads somando as indicagées de cada um dos ponteiros mutiplicadas pelos nimeros de voltas que cada disco representa Uma ver compreendida esta estratégia, podemos deixar de lado 0 esquems com discos, substituindo cada um destes diretamente pelo seu valor, conforme estamos ‘acostumados a fazer, com um algarismo para as unidades, um para as dezenas, um pare as centenas e assim por diante. A Figura 11 a seguir nos dé um exemplo do que estamos dizendo. Este processo todo que acabamos de descrever & a base da notacSo posicional. Ou seja, & ele que nos permite utilizar uma base numérica para representar todo e qualquer "nimero inteiro que possamos imaginar. ‘Como pudemos ver, com excegdo do primeiro digita, o que conta as unidades, todos (5 demals contam quantas vezes 0 seu antecessor jf contou até o limite da base adotada, (u sefa, quantas veres ocorreu um estouro da base no dlgito que © antecede, No caso ‘especifico da base decimal, isto indica quantas vezes o digito a sua direita contou até der. Desta forma, como podemos ver pela Figura 11, 0 valor total da contagem é obtido somando-se 0 valor registrado em cada um dos digitos, multiaicado pela contagem que 2 ‘ua posi¢do representa. Muito fécil no é mesmo? 0 Z 4 Ty? 1 2 4722 4 4x (10x1 0x10) + 7x (10x10) + 2x (10) +2 fn | ae | oe | Mit Centos Dois Figura 11 ~ Exemplo de relago entre os valores incicados nos disco valor que representam Nos livros em geral, voc@ encontraré este procedimento normalmente expresso na forma de um somatério ponderada de termos, no caso, dos agitos uilizados, a semelhangs do que vermos na Figura 12a seguir. noi Valor Representado = >» d;* Bi = Figura 12 ~ Expresso matematica equivalente 3 notacso poscional Fsta expresso indica que o valor representado por uma sequéncia numérica 6 dado pelo somatério dos simbolos que a compdem, aqui indicados por d, ponderados pela posigdo que ocupam na sequéncia dada, aqui indicado pelo incice i direita do d. Em resumo, nesta expressio, B éa base numérica adotada, d 60 valor atribuido ao simboto e i ' posigo que o simbolo ocupa na sequéncia, [Um detalhe importante 2 ser observado, e que pode nao fcar claro pela expresséo, 6 que os simbolos devem sempre ser ponderados da direita para a esquerda. Ou seja, 0 primeiro digito, ou 0 digito mais & dirita, seré ponderado pela base elevada a zero, 0 que significa que o seu valor seré muitiplicado por 1. 0 segundo digto seré ponderado pela base elevada a um, 0 que significa para a base decimal que este seré multiplicado por dez, e assim por diante. Para fixar 0 que aprendemas, tentemos analsar como a nota¢io posicional foi utlizada na formaglo dos nimeros a seguir: a) 500 Sx 10? +100 b) 321 =30042041=3« 107+ 2« 10+ 1« 10° ) 782=700 +80 +2=7 + 1074 e+ 10t+ 26 102 4) 1247 =1000 + 200440 +7=1% 103 4 2+ 1024 4+ 1074 7+ 10° Voce consegue perceber que o que temos aqui nada mais é que a aplicagio direta da expresso matemiética apresentada na Figura 12? € muito importante que isto fique bem claro para voce, Caso esteja sentindo alguma ificuldade, peca ajuda a0 seu monitor. Esta andlise, por simples que pareca, € essencial para que compreendamos 0 funcionamento da notago posicional e seré de suma importancia para entendermos tamaém como funcionam as outras bases numéricas. ‘Agora que jd sabemos como expressar os nlmeros intelros utilizando a notacdo posicional, podemos buscar entender como podemos utilizar esta mesma notagéo pposicional para representar tamaém os nmeros fraciondrios. 2.5 NUMEROS FRACIONARIOS Observe os exemplosa seguir: 104 3.44 » 33,4 Logan s0t pr 3t pie 3e 0 9 5 <5, 4 5,4, 4-5. 001=005=5« 107 300° * 300 =5* 30" 10 a ao BS As, bt cossa1. 10-94 54 107 yoo ~ 100 * 100 ~** 10 ‘100 e) 111d =1= 102+ 1+ 10+ Le 100+ Le 10-1 + ae 102 Voc conseguiy notar algo de familiar com o que acabamos de estudar? ‘Ao analisarmos estes exemplos, a primeira coisa que percebemos é a inclusio da virgula como elemento separador entre a parte inteira ea parte fracionéria dos nimeros. Outro ponto muito importante & que os digitos colocados & direita da virgula, que representam a parte fracionéria do ndmero, so ponderados pela base com 0 expoente negative’, o que significa que em ver se estarem sendo multiplicados estéo sendo divididos por ela Observe novamente as exemplos d ¢ €. Vela que da mesma forma como ocorre ‘com 0s nimeros inteiros, 0 valor exaresso por um niimerofracionério na nota¢3o posicional também é obtido como o somatério de todos 0s termos que o compe, Em resumo, para representar um nimero fracionério na notaglo posicional, basta Incluir a vrgula para separar a parte inteira da parte fracionéria, ponderando os digitos que ficam & esquerda desta pela base elevada a um expoente positive e os que fieam & direlta com a base elevada 20 expoente negativo. Para finalizar, podemos agora reescrever a expressio apresentada na Figura 12, de forma que esta contemple também os nimeros fracionérios. A Figura 13 a seguir mostra ‘como ficaré nossa nova expressio. n Valor Representado > d, «pi * = Figura 13~ Expresso Matemstea para 3 Notaeo Posiciana inuindo os nimerosfracondios Esta nova expressio difere da anterior pela inclusdo do & 0 qual indica quantos digitos existe a direita da virgula, ou seja, quantos clgitos foram reservados para a representagio da parte fracionéria do nimero. ‘Que tal agora exercitarmos um pouco tudo o que aprendemos fazendo uma analise aprofundada dos niimeros a seguir. Utlize a expressio apresentada na Figura 13. Repita o que fo feito nos tr8s exercicios seguintes. a) 12,41 n= 4 (Quantidade de digitos do nimero} k= 2 (Quantidade de cigitos da parte decimal do ntimero) Valor Representado = i+ 10+ 4+ 10-t +2» 107+1+107 b) 73,5309 n=6 Valor Representado =9 10% +0=19-+3 «10-7 + 5-40-84 3.6109 +7 + 104 1025 Valor Representado = 5 * 10°+2*10? +0« 107 +1107 4) #320 Valor Representado = e) 0322 Valor Representado = ) 10,005 ‘Agora que ji sabemos tudo 0 que precisamos sobre o que é uma base numérica © como funciona a notapSo posicional, podemos nos aventurar 3 trabalhar com as outras bases numéricas anteriormente citadas. [A primeira base que estudaremos seré a base binéria, 2.6 BASE BINARIA Como vimos no inicio deste capitulo, a base bingria & formada por um conjunto com apenas dois simbolos: 0 zero e o um, {0, 1}. Mesmo assim, acredite, langando mao dda notagdo posicional pocemos representar com a base bindria praticamente todos" os ‘ndimeros que vacé possa imaginar. Por ser @ base numérica adotada nas Unidades Légicas e Aritméticas"* (ULA) de todos 0s processadores, esta base numérica é extremamente importante. Compreender como representar e operar com ndmmeros na base bindria & essencial & compreenso de como um computador funciona. Por isto, vamos tentar ser bem ‘minuciosos em nosso estudo, Devido @ sua importinc’a, alguns termos foram definidos para melhor retratar ‘alguns elementos presentes nos nimeros expressos na base binéria, so eles » Bit Nome dado 20s digitos de um numero expresso na base binéria. Desta forma, & comum utlizar-se expressbes como 8 bits, 16 bits e 32 bits para se referir 3 {quantidade de digits de um némero expresso na base binéria. » MSB ~ Sigla inglesa derivada da expresso Most Significant Bit que significa literalmente Bit Mais Significativo. Este é o nome dado a0 bit com maior peso associado, ou seja, a0 bit localizado mais a esquerda do nimero. » LSB ~ Sigia inglesa derivads da expresséo Least Significant Bit que significa lteralmente Bit Menos Significativo. Este é 0 nome dado ao bit com menor peso _associad, ov seja, 20 bit ocalizado mais a dieita do niimero » Palavra— Nome dado a0 conjunto de bits utlizados pare representar um niimero. Esta expresso 6 normalmente utizada para indicar a quantidade de bits que tum processador utiliza internamente para representar suas informagBes, em ‘expressdes do tipo: Os processadores Core Duo utizam palaveas de 22 bits [A Figura 14 2 seguir demonstra como estes elementos esto presentes na ‘epresentagdo dos nmeros representados na base bindria, 7 10110010 Palavra de 8 bits Figura 14 — elementos presentes nos nlmeros expresss na base bindsia ‘Agora que [8 conhecemos alguns detalhes dos nimeros expressos na base bindria, podemos comecar o nosso estudo de como esta base realmente funciona, Para comecar, vamos fazer uma analise semelhante a que fizernos com a base decimal Primeiramente, tomemos um disco com a representagio da base bind, Figura 15 - Disco com a representagdo da base binsia ‘Agora, utilizando este nosso diseo bindrio, vamos tentar cantar até dex, ‘Acompanhe a contagem na Figura 16 a seguir. Comesamos contando: zero, um, mas quando vamos tentar contar o dois percebemos que jé estamos chegando a0 zero novamente, ou seja, se continuarmos contando estouraremos a base e perderemos a nossa referéncia, Zero Um Figura 16 ~Confguracso do disco bindrie ao contarmos 6o zero a0 dots © que fazer entdo? Vamos adotar a mesma estratégia que jé utiizamos na base decimal. Vamos incluir um segundo disco para contar quantas voltas 0 primeiro disco ja deu. Veja como ficaré nossa configuragao na Figura 17 a seguit. 2 2 Figura 17 Posi¢io dos discos binds incicando que i contamos até dois Como no temos um nome especial para dar aos discos, como tinhamos na base decimal, vamos apenas identficé-los pelo valor que cada um representa, Como 0 segundo disco conta quantas veres 0 primeiro disco deu uma volta completa, o que ocorre a cada 1°10'=10 r Figura 27 ~ Exempla de pesos stribuides aos diitos de um nimerofraciondrio Veja cue, no primeiro caso, 0 1 antes da virgula foi ponderado com 10, ou sela, por dez mesmo. J8 no segundo caso, 0 1 apds a virgula fol ponderado com 10", ou seja, por +. Nos dois casos, 0 niimero 1 estava uma posicao cistante da posigao das unidades, {que & a primeira posigdo a esquerda da virgula. Ambos foram ponderados de acordo com - sua posicdo, s6 que no primeiro nlimero, coma 0 1 estava & esquerda da virgula, este foi ‘ponderado positivamente e 0 que estava a cireita negativamente, Desta forma, dizemos que os dligitos reservados a representacio da parte fracionéria, 0s quais s30 colocados @ direita da virgula, s30 ponderados negativemente, fenguanto que os reservados 3 parte inteira, os que ficam a esquerda da virgula 80 ponderados positivemente. Esta 6 também a estratégia adotada para a representagio dos nimeros fracionarios nna base bindria. Da mesma forma que na base decimal, dividem-se os digitos por uma virgula, ficando os da esquerda reservados para a representaglo da parte inteira e os da direta para a parte fracionéria, 4) 1 0,1, =0+29+4+24 =0+—>=14+5=05 oo, UAL, = 192 ede 41.2 4102 3,78 Vejamos alguns exemplos Para efetuarmos a conversio de um nlmero fracionério da base decimal pars & base bindria, podemos ou utilizar © processo de conversio direta, conforme acabamos de ver, apenas incluindo os valores @ serem atribuidos aos digitos & direita de virgula, ou podemos utlizar um algoritme muito semelhante ao adotado para conversSo por divisbes sucessivas,s6 que em ver de divstes efetuaremos multiplicagdes sucessivas. 2.10 ALGORITMO DE CONVERSAO POR MULTIPLICACOES SUCESSIVAS © proceso de conversio de um numero fracionétio da base decimal para a base binaria pode ser efetuado de maneira simples e direta a partir do seguinte algorito. Dado um niimero a ser convertido, separe a parte inteira da parte fracionérie. Primeiramente converta a parte inteta através de uma das técnicas jd apresentadas. Feito 'sto, podemos passar & conversao da parte fracionéria da seguinte forma: 1. Verifique se a parte fracionéria do ndmero a ser corvertido € igual a zero. Em caso afiemativo, o processo de conversio se encerra e a sequencia de digitos obtida é 2 representacdo desejada. 2. Caso a parte fracionéria sela diferente de zero, multiplique esta por dois. Anote e subtraia © primeiro digito da parte intera do resultado obtido. Este ciito deveré ser colocado 4 direta dos digitos jd obtidos durante o processo de converséo da parte inteira 3. Retorne 20 primeiro passo do algoritmo. (© exemple a seguir demonstra como devernos aplicar este algoritmo, es ate nia ada no your aps oo ie ‘tap do Agen Figura 28 Demonstragio do algoritmo de conwersdo.de NimerosFraconéros da Base Decimal para ‘2 Bare Bindria ‘Tente agora converter os seguntes nmerosfraconérios para a base bindla 2) 0125 ») 7,750 ) 0,875 2.11 OPERAGGES ARITMETICAS NA BASE BINARIA ‘Agora que jd conhecemos a base binéria e como podemos utlzéla para representar valores numéricos interos efracionéros, podemos passar a estudar como efetuar as duas principais operagles aritméticas nesta base. Lembre-se, como comentamos a principio, nosso principal objetivo ao estudarmos ‘a base binéria é buscar entender como as Unidades Logicas e Aritméticas dos processadores funcionam, e como estas conseguem operar com os nimeros representados na base bindria. Operagao de Adicao De um modo geral podemos dizer que no existem grandes diferencas entre as coperagdes de adicdo que nés efetuamos utilzando a base decimal, e as operagdes de adicio {que as Unidades Légicas e Aritméticas dos processadores efetuam utilizando a base binds. Na verdade, a nica coisa que muda €0 valor no qual o¢orre o nosso conhecido “val um". Nas Figuras 28, 29, 30 ¢ 31 a seguir, teros alguns exemplos de operacdes de adigdo cefetuadas tanto na base decimal quanto na base binéria ‘Vamos primeiro analisar © que ocorre em uma operacio de adiclo na base decimal ‘Acampanhe nosso raciocnio na Figura 29 a seguit. 1<—_,, 1 2) 09 Comoe +04 oFarre.um ‘val 1<——_,, 2) 193 Como9+9=418, +95 ocorre um ‘val um @ cam oto’; 288<——/ Figura 29 ~ Exemplos de ocorrénca de “val um” na base decimal Como sabemos, a soma de dois numeros qualsquer é sempre efetuada a partir de somas parciais efetuadas par 8 par sobre cada um dos seus algarismos. Somamos primeiro as unidades, em seguida as dezenas, as centenas e assim por dlante. E, sempre que o resultado de uma destas somas parcial for maior que nove, o que caracteriza um estouro da base, efetuamos um “vai um", correspondente 20 digito das dezenos do resultado obti¢o, ficando apenas o cigito correspondente a parte das unidades para ser regstrado na posigo conde ocorreu a adicso, Eu tenho certeza que voce jé esté cansado(a) de saber disto, nfo é mesmo? Pols bem, para nossa felicidade a operacdo de adi¢do na base bindria é até bem mais simples do que isto, Lembre-se que a base bindria possui apenas dois sfmbolos, 0 zero 0 um, @ isto por si sé simplifica muito as coisas. Uma operagdo de adigo entre dois algarismos da base binéria s6 pode assumir uma das seguintes configuracées: 0+ 0,0-+ 1,1 +0€1+1. Ndo podia ser mais faci, nfo & mesmo? Vamos comecar com algo bem simples, acompanhe a operacio do exemplo da Figura 30 a seguir. ——— 1 (1) Como 1+ 1=2,¢ como +04, <— em bindrio 2= 10, ocorre um ‘val um e fica zero": 0% j (2) Aqui, devido 20 vai um 491, da operacéo anterior, novamente Se _ tomes um alum 2a 220 << th 14, (3) Forfim, como ne tomes mais +01, __ fermos a somar, apenas de oe Oh coneluindo a ima operagio. Fgura 30 -Exemplo de ocorrénca de "val um” na base india Observe os passos 1 e2 de nossa operario. Como voc8 deve ter notado sempre que ‘um resultado parcial for mafor que 1, 0 que Indica um estouro da base binéria, a exemplo do ‘que ocorre com a base decimal quando um resultado parcial é maior que nove, precisamos fazer um vai um para odigito seguinte. Como em amos os casos os resultados parcials $80 Jguals a dois, e como dois em bindrio é representado como 10,,efetuaremos um val um e fica zero, Exatamente como fizeros no exemplo a da Figura 29 quando o resultado de uma soma parcial fol igual a onze, ‘Observemos agora o nosso prdximo exemplo: ———— 1 (1) Como 1+ +44, <— em binsrio 2 = 10, ocorre um T__ value tice sero (2) Como 14144 =3,ecomo. om bindrio 3= 11, ocorre um ‘valum @ fica um ——— Ys 14, (3) Como nao tomos mals 411, formosa comar, aponas descomos Fiat ° Hoanshinde acim a operegho Figura 31 ~Mais um exemplo de ocorréncia de "val um’ na base binria Aqui, além do vai um e fica zero ocorrido na operaro anterior, temos também ‘um val um e fica um, resultante da operacio 1+1+1 ocorrido no passo dots. Como todos sabemos, 14144 6 igual 23 e como 3 em bindrio 6 igual a 11, 8 semelhanga do que viros no ‘exemplo b da Figura 29, precisamos fazer um “vai um e fica um" a fim de propagar o estouro {da base observado no resultado obtide, Muito simples, no é mesmo? Nosso nico cuidado deve ser observar corretamente quando efetuar 0 “vai um", cue em bindrio acorse sempre que o resultado for maior que "1" O restante da operacio ocorre exatamente como estévamos acostumados operando com a base decimal ‘Agora, para terminar, observernos na Figura 32 a seguir o que pode ocorrer quando ssomamos mais de dois niimeros de uma ver s6 em bingo. 1 1 10 (1)Como1+0+1+0=2, © como om binario 2=10,, +4 ‘corre um “val um e ca 260% 9, , —@como.em bindrio 4=100,, 1, ecorre um ‘val ume zero fe fca zero" 00,<_____J y 11 1 3) Como o+1 + 0, Como em bindrio 2= 10,, 14, corre um “vai um @ ice zero% +10 30q,< J Bos 1 (4) Como 1+1=2,0 100; como em binario 2 = 10,, 1, georre um “ai um e fica zero"; + 10, 0000, (6) Como nao temos mals ‘nenhum digito para somar ‘apenas descemos 0 1. je —__—! Figura 32 Exemple de “Val um e ero e fica um” em binrio Neste exemplo, temos uma situagio bem peculiar, que cificilmente observariamos 1a base decimal. No segundo passo da nossa operacao, quando somamos 1+1+141 ‘temos um “vai um e zero e fica zero", ou sea, temos a propagaco de um val um para a mals cde uma casa 8 esquerda da posi¢do que estamos operand. Isto ocorre porque, em decimal, 1+1+1+1 €iguala 4.e4 em binario € "100", desta forma, como sempre ficamos apenas com o primetco digito pasando os restantes para as casas seguintes™, eros que fazer um “vai um e zero e fica zero” Muito estranho, no & mesma? Mas voe8 niio tem com © que se assustar, a regra & sempre a mesma, primeiramente some os dgitos da operacio parcial, exstamente como se estivesse operando na base decimal, em seguida converta o resultado obtido para binério, por fim preserve apenas 0 digito menos sigificatvo do resultado obtido, propagando os demais digitos em uma operacdo do tipo vain. Operagao de Subtracao Por questées de economia, a fim de reduzir © tamanho e a complexidade do hhardware empregado, as Unidades légicas e Aritméticas dos processadores convertem as ‘operacées de subtragdo em operagbes de adicio entre o primero operando (minuendo) eo inverso do segundo operand (subtreendo) Como era de se esperar, € como podemos ver pela expresso a seguir, apesar de reduzir enormemente o hardware necessério nas Unidades Logicas e Aritméticas, isto em nada aera o resultado obtido, A-B +(-8) Desta forma, uma ver que jd salemos como se processa uma operacio de adiglo tna base bindrla, a Gnica coisa que precisamos aprender para efetuar uma operacio de subtrag0 na base binéria & aprender como podemos representar 0 inverso de um nimero nesta base, Antes disto, entretanto, precisamos defini claramente o que € o inverso de um ‘nGimero, Isto seré muito importante para que compreendamos o que iremos fazer para ‘epresentar 0s ndimeros negativos na base binéria, Em qualquer sistema numérico, 0 inverso de um ndmero é aquele que somado 30 primeiro, tem zero como resultado. Na base decimal, por convencéo, representamos um numero negativo da mesma forma que representamos um ntimero positive, com a dnica diferenga que 0 nimero negative seré precedido pelo sinal "". Este padrdo de representacdo que simplesmente associa um sinal de "” para formar a representagdo de um nimero negativo, & conhecido como representacio de Magnitude e Sinal . Na base bindria além da representacSo de Magnitude e Sinal temos também uma ‘outra, conhecida como representagao de Complemento a Dois. ‘Como jédissemos, dentro da Unidade Logica e Aritmética de um processador todos (05 nUmeros s30 representados utlzando apenas as base binéria. Nem mesmo os sinais de "6" @ "existe, De um modo geral, tanto na representario de Magnitude e Sinal quanto na representacdo de Complemento a Dois", adota-se reservar o digito mais ignificativo ou IMsa (Most Signficant Bit), para sinalizar se um nimero é positivo ou negativo. Normalmente utiiza-se 0 “0" para indicar que o numero é positive e 0 "1" para indicar que © nimero é negative. No sistema de Magnitude e Sinal, a semelhanga do que ocorre na base decimal, simplesmente ajustamos © MSB para indicar se © numero é positive ou negatvo, deixando © restante da representacdo inalterada. A Figura 33 a seguir demonstra como ficaria 2 ‘epresentacdo de alguns ntimeros positivos e negativos neste sistema, 1 = 00000001 j000001 3=00000011 3 = 10000011 “0 =00000000'-0=-10000000'—> ER RO! Figura 33 — Representago no sistema Magnitude e Sina ‘Observe que este sistema apresenta duas incoeréncias: Em primeira lugar, permite duas representagées distintas para 0 zero, uma positiva ce outra negativa Fem segundo lugar, se tentarmos operar a soma de um niimero com 0 seu inverso, ‘nos moldes do que aprendemos até agora para a base bindria, no obteremos zero como resultado. Ou seja, a representago de Magnitude e Sinal é muito itil e interessante para nds seres humanos, mas para os computadores é um verdadeiro desastre. Por este motivo, (0 sisternas computacionais normalmente adotam a representaco de Complemento a Dois como representagso padrio para os nimeros dentro das Unidades Logicas Aritméticas. Notacaio de Complemento a Dois [A Notagdo de Complemento a Dois no apenas corrigeo problema da indicagdo de zero negativo e positivo como também permite expressar convenientemente 0 inverso de ‘um numero, de tal forma que a adigSo deste com o seu inverso, em bindrio, resulte em zero bindrio. Considere um nimero N, qualquer expresso na base binéria. Se existe uma representagdo para em (-N, ) em binério, esta representado deve ser tal que: Ns #CN), = 0, (GN), =0,-N, Fgura 3 Def nigso do inverse de um nimero em binario Ou sela, se (4, exist, este certamente pode ser obtido pela operacSo subtracso 4o proprio W, da representac0 do zero em binsro (,) Sendo assim, s6 para comecar tentemos encontrar uma representacSo para 0 inverso do némero Lem binério, ou seja, uma representagdo para (-1), de tal forma que quando somarmos esta representaco 20 préprio 1 em bindrio obtenhamos 0 zero binsrio como resultado, [Antes de qualquer coisa, precisamos primeiramente definir quantos digitos a nossa representagdo terd, Isto ¢ importante porque, conforme dissemos a principio, o MSB de um rimero em binério deve ser reservado para indicar se este & positive ou negative. Desta forma, apenas por convencio, vamos adotar uma representag3o baseada em uma palavra de 8 bits. Feito isto, acompanheros agora os demais passos apresentados na Figura 35 a seguir ‘Observe que comeramos definindo uma representagio para o zero e outra para 0 um. Observe também que o MSB de ambos os nlmeros é zero, 0 que indica que ambos so ‘ndimeros positives. No passo 1, exatamente como fariamos na base decimal, comegamos nossa ‘operacio subtraindo os primeiros algarismos da representario do_um e do zero, que, por coincidéncia s8o respectivamente 1 € 0. Como 1 € mator que 0, precisamos pedir algo emprestado para que possamos continuar a nossa operagdo. Esta operagio de pedir emprestado, em binério & também onhecida como “ver um". Entretanto, como podemos vet, 0 segundo digito da ‘epresentagio também é zero, ou seja, no pode emprestar nada ao primeira. O terceiro, ‘© quarto, 0 quinto, 0 sexto,0 sétimo e até 0 oitavo clgitos 580 todos iguais @ zero. Ou seja, aparentemente nossa operagio no pode continuar. Lembre-se, se estivéssemos operando nna base decimal, nds simplesmente inverteriamos @ operacio e 0 sinal do seu resultado. [Aqui em vez disto, como podemos ver no passo dois, faremos um “vem um externo” que, como veremos, no apenas “inverterd 0 sinal do nosso nimero” como também nos permitia concluir convenientemente nossa operacio de subtragio. Um detalhe importante aqui, como poderos ver pelo passo 3, & cue, diferente do ‘que ocorre na base decimal aonde um vern um significa somar dez ao digito anterior, na base binéria 0 vem um significa somar dois a0 digito anterior. Desta forma, ao se propagar, ‘© nosso "vem um" vai fazendo com que todos os digitos menos 0 LSB de representaro do zero fiquem igual 21, conforme podemos ver pelo passo quatro da nossa operacio. Como © LSB no vai emprestar para ringuém, este fica com valor igual a dois ou “10" na base bindria, conforme podemos ver no passo 5 da nossa operacSo. Represantazbos para ‘aro um na base via com 6 dighos N onoowed (1) Como 1 maior que 0, > = 9000000 — Setwnta,e sao? tint ectivale somat Surv fequlvate a somar dois do digo anterior, a ov" ‘ols do gto anterior; Go000000 we 120000001 (0 vem um’ provagese por 1477774 (5) Lembro-se que todos os digitos; _ <— 10,oquivale a 2na Go.ao.0! bese decimal; 41111111 (6) Propagado o “vem um" podemes concluirnossa Eubtrogdo obtendo assim & Figura 35 ~Estratég'a para encontrar uma representagSo para 1 na base binéria ‘Agora sim, feita @ propagacéo do “vem um externo", podemos completar nossa ‘operacio subtraczo, tendo como resultado 11111111, que é a nossa representagSo pare (-4) na notagio de complemento a do's, como vocé pode perceber, ainda que um pouco trabalho, 0 processo todo & até ‘bem simples. Vamos agora verifcar se o valor que encontramos para representar 0 (-1), atende 3 prerrogativa estabelecida, ou seja, se a sua adigo com a representagdo do 1 utlizada para lobté-la resulta em zero. Para tanto, vamos somar a representagio encontraca com a representacdo para 0 ‘nGmero 1 anteriormente utlzada, Larch “St on 1111111 99111119<—C1) *00000001<—(1) 00000000<—CORRETO! Figura 36 Vrifiando se a representagio de 1 encontrada esté covets ‘Como podemos ver, com excegao do "vai um” para o nono digit, todos os demais resultaram igual 2 zero, o que é uma representagio valida para o zero no formato de ndmero bindrio adotado, © "vai um" do nono digito seré considerado apenas como o inverso do “vem um externo" ocorrido na operacéo de obtengio do (-1), sendo desta forma apenas uma Indicagéo da inversio do sinal do resultado, Observe que este processo ndo apenas atendeu a prerrogativa estabelecida, como indica corretamente sinal do ntimero representado. Observe que o MSB da representacio para 0 (-1) ¢ igual a1, indicando que este & um ndimero negativo, Ao passo que o MSB da representagio para o (1) & igual a zero, indicando que este & um nimero positive. Muito interessante, nfo é mesmo? Vamos agora ver um processo bem mais simples e pratico de obter este mesmo resultado, Na verdade, a representaco em “Complemento a Dois" recebe este nome devide ‘20 algoritmo que iremos apresentar agors. ado um niimero qualquer, inverta 0 valor de todos os seus digitos, ou seja, aonde tiver "I" cologue “0” e aonde tiver “0” coloque “1”. Este processo recebe 0 nome de ‘complemento a um, ou simplesmente complemento, ‘Adicione “1” 20 resultado obtido e, como num passe de magica, obtenha o inverso do némero que estava procurande. Na Figura 37 a seguir, temos uma demonstracao deste algoritmo aplicado para obtero inversa de 1. (1) —+ 00000001, (ern seen u Qurractryieiea imc bone 14111110, 4 (2 Toran orotate (~ no primeiro passo € somamos com “1” 4144444 ) *0000000 C1) 11110111 1, 00000001, << Cinverso do nimero dado (2) Tomamos 0 resultado obtido sf ‘No primeiro paseo © somemos com “1” Figura 38 ~ AplicagSo do algortmo conversdo para complemento @ dois aplcado a um nimere negative Para finalizar nosso estudo das operacdes aritméticas na base binéria, que tal verificar © que aprendemos fazendo alguns exercicios? A seguir tem alguns exemplos jé resolvidos. Tente fazéos por si mesmo, e no final compare os resultados obtidos. Em todos les nés iremos adotar 0 pad:do bindrio de & bits em complemento a dois Para os ndmeros negativos, primeiramente vamos representé-los como nimeros positives ¢ em seguide converté-los para ndmeros negatives no padre de complemento a dos. a) 7-5 = 00000121 ~ (00000101) = oo0d0121 + 11211012 = 00000010 (2) bb) 13-45 = 00001101, - (00102201,) = 00001201, + 11010012, = 11100000, (32) €) 21 = 43 = {o0010101,}00101011,) = 11101011, + 11010101, 111000000, (64) 4) -35+ 102 =-(00100011,) +1100110,= 11011101, + 01100110, 01000011, (on, Er) 2.12 PODER DE REPRESENTACAO DA BASE BINARIA Nesta titima parte do nosso estudo, vamos dar uma paradinha e consideraro poder de representacio desta base numérica tdo importante, Para tanto, comecemos tentando respondendo algumas perguntas, que até certo ponto podem parecer meio confusas, mas que ao respondermas, nos dario uma visio mais clara deste ponto t3o importante, 1, Quantos nimeros podemos representar na base binéria, adotando uma ‘epresentagio sem sinal, com uma palavra de N bits? E ainda, quais seriam o maior ‘@0 menor nimero representéveis para uma palavra deste tamanho? 2. Ese adotassemos uma representacio com sina, digamos em complemento a dois, ‘© que mudaria em nossos valores? Nesta condiglo, quantos nameros poderlamos representar e qual seria o maior e 0 menor deles? 3, Quantos bits, ou dlgitos, seriam necessarios para representar um nimero R ‘qualquer, dado originalmente na base decimal, se adotdssemos uma representacdo utlizando a base binéria em ums notag0 com e sem sinal? Para responder estas perguntas, pensemos um pouco... Vamos comegar com a base ‘numérica que estamos mais acostumados. Vamos primeiramente analisar a base decimal e depois vamos aplicar as nossas conclusbes 2 base binéria, ‘Quantos nimeros podemos representar na base decimal se adotarmos um formato N digitos? Acompanhe nosso raciocinio pela Figura 39 2 seguir. 9) j.7 cantons coop Fgura 39 — Quantidade de nmerosrepresentiveisna base decimal com N digtos Observe que cada digito que incluimos em nossa representagSo nas permite ‘multilicar por dex a quantidade de nimeros representiveis. Com 1 digito, se representarmos apenas nlimeros positives pademos representar até 10 ndmeros, entre O 9. Com 2 digitos podemos representar até 100 ndmeros, entre 0 e 99. Com 3 digitos até 2000 ndmeros, 0 € 999 ¢ assim por diante. \Vamnos agora aplicar a mesma andlise para a base bindria. Acompanhe na Figura 40 a seguir: Figura 40 ~ Quantidade de ndmerosrepresentivels na base bindvla com Ndigtos| Voce percebeu que com a base binéria ocorre algo semelhante ao que tinhamos ‘observado na base decimal? ‘A cada novo digito que incluimos multilicamos o total de némeros representévels por 2, ou seja, da mesma forma que na base decimal, a cada novo cigito que incluimos ‘multiplicamos o total de nimeros representivels pela quantidade de simbolos da base adotads Observe ainda que, tanto na base decimal quanto na base binéria, como estamos representando apenas ndmeros sem sinal, ou seja, apenas nimeros positives, o menor mero representavel foi sempre o zero e 0 maior foi sempre igual a 1, onde B = base ‘numérica adotada e N é a quantidade de digitos utlizados. Verifique por vocé mesmo... Quantos nimeros voc® pode formar na base decimal com 5 digitos? E na base bindria, quantos nimeros voc® poderia formar com os mesmos 5 digitos? Por fim, vamos agora observar 0 que acontece quando utlizamos a base bindria ‘para representar nimeros com sinal, ou seja, niimeros positivos e negativos. ‘Como vocé deve estar lembrado, tanto no padréo de Magnitude e Sinal quanto no padrdo de Complemento a Dois, 0 bit mals significative, © MSB, deve ser reservado para representacéo do sinal do ndmero, Ou seja, dos N bits que ternos apenas N-1 so cefetivamente utilizados para representar a magnitude ou o valor do numero, Observe as Figuras 41 e 42 a segui. [Nao ¢ possivel formar indmeros com apenas 1 bit ‘no formato de magnitude e sinal 0.1=1 ——> 1 ndimero postive 0050 5 2 zeros > t ndmore negative jesse diet J 920 | aamoe 0-0 a LL oe tee in Figura 41 ~Quantidade de nimerosrepresentve's com N dlgitos no padrio de Magnitude eSinal rnimeros com apenas 1 bit N50 6 posetvel formar no formato de complemento a dois o4tt 0000 0000 wy 4000 Figura 42 -Quantidade de admeras representivels com dlgites no pactdo de Complemento a ols Voc® conseguiy perceber que tanto no padréo de Magnitude e Sinal como de Compiemento a Dois 0 total de ndmeros gerados continua sempre igual af"? ‘Observe com bastante atenco, este no é um detalhe facil de ser percebido. Veja ‘por exemplo no padro de Complemento a Dois, na iitima parte da Figure 42. Se somarmos ‘2 quantidade de nimeros positives, a quantidade de némeros negativos eo zero teremos: 2-4 ae2t4 428 ‘Agora tente fazer o mesmo pare 0 patio de Magnitude e Sina e veja se voce consegue confrmar este mesmo resuitado Fara inalzar a nossa ands, temos na tabela da Figura 43 a seguir um comparativo centre a representagées de riimeros com sinal e sem sinal para uma palavra de 4 bit. REPRESENTACOES REPRESENTAGDES Cou smal ‘Semanal tragatgs rao ‘semsinal Figura 43 ~Comparativo entre o poder de representa¢o ara nimeros representados em ‘Complemento a Dols, Magnitude e Sina e Binéria sem Sinal, para uma palvrabindria com 4 bits Para concluir nosso estudo da base bingria, que tal aprendermos mais um método para encontrar o inverso de um nimero no padr8o de Complemento a Dois? Este método {que iremos aprender agora tem a vantagem de ser extremamente simples para nbs, seres hhumanos, ainda que extremamente complexo para a Unidade Logica e Aritmética executar, ‘motivo pelo qual nio é muito utizado na pratica. Para converter um ndmero em seu inverso, simplesmente execute os seguintes asso: 1. Dado um ndmero qualquer, expresso no padrdo de Complemento a Dols, comece 2 percorrer todos os seus bits da direita para a esquerda, parando no primeiro bit Jguala 1 que encontrar 2. Inverta 0 valor de todos os bits que estiverem & esquerda deste primeira bit encontrado. 3, © resultado obtido seré 0 inverso do ndimero dado no padtlo de Complemento a Dois. Ou seja, se © ntimero dado for positive o resultado seré a sua representacio negativa,e se este for negativo o resultado sera a sua representacdo positiva. (0s exemplos das Figuras 44 e 45 a seguir nos demonstram como podemos aplicar ‘este mézodo tanto para nlimeros positivos como negatives. 01111101, = 125, Inierer Primeiro eere, bitem 1 estes bits 01111104, 01111000, = 120, Inverter todos estes bits 6547%000, Primero bitem 4 Figura 44~ Exemplos de conversio de nimeros positvos para negatvos no padi de Complemento '2Dois polo método simplicada 10101001, = -87,, Inverter ; Primeiro des bitem 1 ——_ estesbis Sorgr094, 411100000, = - 32). Inverter mei todos bom? estes bis 47400000, Figura 45 ~ fxempos de conversio de nimeros negativos para positvos no padiio de Complemento 1 ois pelo método simplificado Para conclur nosso estudo da base binéria, nos falta ainda responder nossa terceirs € tltima questi: “Quantos algitos, ou bits, precisamos para representar um numero R qualquer?” ‘A resposta desta questdo estd intimamente ligada a0 que acabamos de estudar, no tocante ao poder de representago da base binéra, Como acabamos de aprender, se adotarmos uma palavra com N bits poderemos representar nimeros entre 0 € 2%-1 no padrio bindrio sem sinal e entre -2** e 2-1 no padtio de Complemento a Dois. Desta forma, para definir quantos bits, ou qual © N que precisamos adotar para representar um numero R qualquer na base binéria precisamos simplesmente resolver a “seguinte equaco. 2" 3 R,ouseja: log: ‘Acompanhe os exemplos a seguir: 1. Quantos bits, no minimo, seriam necessérios pare representar 0 nimero 237 na base bindria sem sinal? Como log: 237 =7,$teremos gue utilizar uma palavra com 8 bits 2. Quantos bits, no minime, seriam necessérios para representar © ndmero 87 na base bindria sem sinal? Como log: 97 44 teremos que utilizar no minimo 7 bits 3. Quantos bits, no minime, seriam necessérios para representar o numero 87 na base bindria no padro de Complemento a Dols? 4. Quantos bits, no minimo, seriam necessérios para representar o nimero -35 na base bindria no padrao de Complemento a Dois? Come log: 35 sinal do adimero, te 413, e como temos que incluir um bit a mais para representar 0 mos que utilizar no minimo 7 bits. ‘Com isto concluimos nosso estudo da base binéria, Acompanhe agora os exercicios propostos no seu Caderno de Exercicios para far 0 que vocé aprendeu. 2.13 BASES OCTAL E HEXADECIMAL Conforme dissemos no inicio do nosso estudo, as bases numéricas sBo definidas a fim de simplifcaro dia a dia de quem as utiliza, ‘A base bindria, por exemplo, € extremamente prética para ser empregada na Unidade Logica eAritmética dos computadores, pols permite implementarcircuitos simples eoficazes. Por outro lado, esta mesma base bindria ¢ extremamente confusa para nés, seres hhumanos. Nossa mente esta melhor adaptada a trabalhar com a informagao em um gra maior de abstracéo. Desta forma, a fim de simpificar o trabalho com valores originalmente expressos ‘na base binéria, oram definidas duas outras bases numéricas, as bases octal e hexadecimal Estas bases oferecem a vantagem de permitir © mapeamento, ou conversio, deta dos valores expressos na base binéria. Desta forma, a conversio entre a base binéria © as ‘bases octal e hexadecimal, e vice versa, ocorre de maneira simples e natural Conforme vimos, a base octal possui apenas oito simbolos, (0, 1, 2, 3, 4,5, 6, 7h E, como vimos no nosso estudo da base binaria, para representar valores entre zero e sete precisamos exatamente de 3 bits, ou digitos, bindrios. Ou sela, para fazermos a conversio entre a base bindria ea base octal basta que agrupemos os bits utilzados em palavras de 3 bits, susbtituindo-os pelo seu valor equivalente pela nota¢do posicional. Aconverso da base ‘octal para a base binéria se da exatamente pelo caminho inverso, ou seja, simplesmente substituimos cada simbolo da base octal pelo seu equivalente na base binaria. 0 nico Cuidado que precisamos ter nesta converséo é que cada simbolo da base octal equvale 2 3 bits da base bindria e vice-versa, Observe os exemplos de conversio apresentados na Figura 46 2 seguir: a) 100110101 b) 10010100, c) 735, dy 501, Te ae SO Tb 465, 224, 111011101, 101000001, Figura 46 ~ Exemplos de conversSes entre a base bindla ea base octal e vice-versa Muito simples, no é mesmo? ‘Com # base hexadecimal néo é diferente. Como ests base possui exatamente 16 bolas, {0, 1, 2, 3, 4, 5, 6, 7, 89, A, B C, DE, Fh, podemos associar cada um dos seus ‘polos a4 bits, ou um nibble,da base bind, ‘A conversio entre a base bindria ea base hexadecimal se dé exatamente da mesma forma que acabamos de ver com a base octal. Veja alguns exernplos na Figura 47 a seguir a)10010001, —b). {1040109, c) BS d) iF. Gd ZS ¢ 4? Sr £2 914, D4, 10100111, 00011111, ‘Atualmente, a base octal se encontra praticamente em desuso, havendo quase ‘uma hegemonia da base hexadecimal. Mesmo assim, devido a0 seu valor historic, é muito importante que aprendamos a operar com ndmeros tanto na base octal quanto na base hexadecimal ‘Aim de evitar ambiguidades, todas as linguagens de programacéo utilizar algum tipo de indicagio para identifiar 2 base numérica adotada em determinado némero. Normalmente utliza-se um prefixo ou um sufixo no lugar do subscrito que temos adotado ‘em nosso texto. Os padrBes mais utlizados sto: » Base Hexadecimal: utiliza-se o prefixo “Ox” antes do nimero. Por exemplo: OxA3, (0x37, OXAA3S, @ assim por diante, » Base Octal: utilzam-se apenas a letra “O” como prefixo. Por exemplo: 035, O71, 57. Ey (011, €assim por diante. » Base Bindria: A maioria das linguagens exstentes atualmente néo da suporte direto ‘dads exprestos na base binéria. Desta forma, o artificia mals camum, quando necessério, élangar mao do mapeamento existente entre esta base e as bases octal ‘hexadecimal Conversao das bases Octal e Hexadecimal para Decimal A conversio de nimeros escritos tanto da base octal quanto da base hexadecimal para a base decimal se dé exatamente da mesma forma como fizemos na base binéria, ou seja, pela aplicaro da notacs0 posicional. Para tanto, utlizamos o somatério visto na Figura 12, apenas lembrando que devemos substituir 0 f pelo valor correspondente 2 base adotads. Devemos lembrar também que as letras utlizadas como simbolos da base hexadecimal possuem valor numérico, ou seja, devemos lembrar que na base hexadecimal © simbolo A equivale @ 10, 0 8 equivale 2 11, 0 C equivale a 12, 0 D equivale a 13, 0 & equivale a 14 e0 F equivale a15. Vejamos os exemplos a seguir 2) 0x36 = 3x16++ 6x16" -= 54 b) OxAA = 10x16" + 10x16" 160424 70 6) 0x378 = 3x16? + 7416? + 6x00 = 888 8) 035 = 3x8! 5x8*= 64 e) O77 = 814 7x8 32, f) or 28? 298+ 198° = 81 Converso da base Decimal para as bases Octal e Hexadecimal [As converses da base decimal para as bases octal e hexadecimal podem ser cefetuadas de duas maneiras. A primeira é através de uma variagfo do algoritmo apresentado para a converso da base decimal para a bindria, que denominamos de técnica por divides sucessivas. A segunda é convertendo 0 nimero primeiramente para binétio e depois fazendo a conversdo direta para a base desejada, octal ou hexadecimal. Como todos jd sabemos converter da base decimal para a base bindria, vamos demonstrar apenas como converter utlizando vatiac3o do algoritmo de divisées sucessivas. Vamos comecar pela base octal. Observe os exemplas da Figura 48 a seguir. a) 36 8 36244, 32 4 4 Dividendo 1° Resto b) 123 (8 123=173, 120 15 8 a 464 7 Dividendo 4° Resto: ® Resto Fgura 48 ~ Exemplos de conversio da base decimal para abase octal ‘Agora vamos ver como fica a conversio para a base hexadecimal. Observe a Figura 49 a seguir. a) 87 (18. 87=57, 80 5 r Dividendo Resto b) 253 46 253=EB, 224 14 j J ai Dividendo_ 1° Resto ©) 1482 he, 1432=598, 1424 89 (16 8 80 5 9 Dividendo A ‘oes ® Resto Figura 49 ~ Exemplas de conversio 6a base decimal para a base hexadecimal Muito simples, nao é mesmo? ‘Agora que jd sabemos como converter e representar nimeros nas bases octal € hexadecimal, nos falta apenas ver como ficam as operagies de adi¢lo e subtragio nestas bases. {A primeira coisa que devemos ter em mente ao pensar na execugSo das operagdes aritméticas nas bases octal e hexadecimal 6 que estas bases nada mais so do que uma ‘outra forma de ver a base binéria. Ou seja, que estas bases ne verdade apenas apresentam (5 valores obtidos na base bindria de uma forma mais agraddvel para o ser humano. A operacio de adicSo permanece exatamente camo fazemos na base decimal, com 2 nica ciferenca com 0 valor no qual ocorre o “vai um, que em octal ocorre quando o resultado parcial for maior que 7 e em hexadecimal quando o resultado parcial for maior ques. Para a operacio de subtragio, por sua vex, devemos evar em conta todas as consideragdes feitas para a base binéria, ou seja, que na Unidade Logica e Aritmética dos computadores todas as operagSes de subtract sto substituidas por operacées de adicéo centre 0 primeiro operando 0 inverso do segundo operando. Pelos motivos jé expostos, mesmo nas bases octal e hexadecimal adotamos formato de Complemento a Dois para representaro inverso de um namero. ‘Assim sendo, 2 estratépia mals interessante para as operacdes de subtracso nas bases octal e hexadecimal, quando os operandos ja ndo estiverem expressos no formato de Complemento a Dols, deveré ser: Observe os exemplos da Figura 50 a seguir. No exemplo a, temos uma operacdo centre operandos expressos na base octal. No exemplo b, temos uma operaglo com ‘operandos expressos na base hexadecimal Preste atencio ao exemplo b. Perceba que ao operarmos com a base hexadecirnal ‘temos que tomar cuidado nfo apenas com o valor no qual acorre o "val um, mas também nas conversBes entre 0s resultados parcials encontrados e os simbolos a serem utlizados. — ? DS oy «73h cane gs 428 econ nen fabese havnt es foe Novamente, temos 8 14 Agora temos 10 como ‘como resultado parcial m resultado parcial mas * 254,” como estamos na base octal, ‘como estamos na base octal, isso significa “ica 2¢ vai 1° 2m,<—$—_ {sso significa Tica 1.9 vai —eee 44 ey ‘ 264, Pare fnalzar,simplesmente baixamos 0 1 “24,7 Figura 50 (a) ~ Exempla de operardes nas bases octal ahexadecimal 1 ST ap TB carsias Deitce tins “ss, ‘ee OhNE ea Anson, me Je 7+ 10, como estamos, como estamos na base na base hexadecimal, 10 =A hexadecimal, 15 = F = F24<———— ‘AF24< 7 Figura 50 (b)~ Exemplos de operagies nas bases octal a hexadecimal ‘Com isto, encerramos nosso estudo sobre bases numéricas. Esperamos que tenham gostaco. Este é um conhecimento extremamente itil pare todos aqueles que pretendem entender um pouco mais como um computador realmente funciona. Para os que se desejarem se aprofundar um pouco mais neste assunto, recomendamos 2 leitura dos seguintes trabalhos cientificos: “What every computer scientist should know about floating-point arithmetic pof ” disponivel em & “Where did all my decimals go.pdf” disponivel em <

Vous aimerez peut-être aussi