O processamento binário

18
Página 1 Formador de Cientifico e Tecnológico Carlos Alberto Gonçalves Rodrigues Acções básicas do processamento de dados Designação: Acções básicas do processamento Para que um computador processe dados é preciso movê-los até a unidade central de processamento, armazenar resultados intermediários e finais em locais onde eles possam ser encontrados posteriormente e controlar estas funções de transporte, armazenamento e processamento. Portanto, tudo que um computador faz pode ser classificado como uma dessas quatro acções elementares: processar, armazenar, mover dados e controlar estas actividades. Por mais complexas que pareçam as acções executadas por um computador, nada mais são que combinações destas quatro funções básicas. A função de mover dados é executada através do fluxo da corrente eléctrica ao longo de condutores que ligam os pontos de origem e destino e não depende de elementos activos. As funções de controlo são igualmente executadas através de pulsos de corrente, ou “sinais”, propagados em condutores eléctricos (estes pulsos, ou sinais, são interpretados pelos componentes activos, fazendo-os actuar ou não dependendo da presença ou ausência dos sinais). Portanto estas duas funções, transporte e controle, não exigem o concurso de componentes activos para sua execução, basta a existência de condutores eléctricos (fios, cabos, filetes metálicos nas placas de circuito impresso, etc.). Restam as funções de armazenar e processar dados. Armazenar dados consiste em manter um dado em certo local enquanto se precisar dele, de tal forma que possa ser recuperado quando necessário. Dados podem ser armazenados de diferentes formas. Nos computadores, são armazenados sob a forma de uma combinação de elementos que podem assumir apenas os valores numéricos “um” ou “zero”, ou os valores lógicos equivalentes, verdadeiro” ou “falso”. Para armazenar um desses elementos é necessário apenas um dispositivo capaz de assumir um dentre dois estados possíveis (um deles representando o “um” ou “verdadeiro”, e o outro representando o “zero”, ou “falso”), manter-se nesse estado até que alguma acção externa venha a alterá-lo (portanto, ser “bi-estável”), permitir que este estado seja alterado (pelo menos uma vez) e permitir que esse estado seja “lido” ou “recuperado”. Um dispositivo que exiba estas características denomina-se “célula de memória”. O circuito electrónico elementar capaz de armazenar dados é a célula de memória. Ref. 1.1.3 Operadores de sistemas Informáticos EFJ-2

description

 

Transcript of O processamento binário

Page 1: O processamento binário

Página 1Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Acções básicas do processamento de dadosDesignação:

• Acções básicas do processamento

Para que um computador processe dados é preciso movê-los até a unidade central de processamento, armazenar resultados intermediários e finais em locais onde eles possam ser encontrados posteriormente e controlar estas funções de transporte, armazenamento e processamento. Portanto, tudo que um computador faz pode ser classificado como uma dessas quatro acções elementares: processar, armazenar, mover dados e controlar estas actividades. Por mais complexas que pareçam as acções executadas por um computador, nada mais são que combinações destas quatro funções básicas. A função de mover dados é executada através do fluxo da corrente eléctrica ao longo de condutores que ligam os pontos de origem e destino e não depende de elementos activos. As funções de controlo são igualmente executadas através de pulsos de corrente, ou “sinais”, propagados em condutores eléctricos (estes pulsos, ou sinais, são interpretados pelos componentes activos, fazendo-os actuar ou não dependendo da presença ou ausência dos sinais). Portanto estas duas funções, transporte e controle, não exigem o concurso de componentes activos para sua execução, basta a existência de condutores eléctricos (fios, cabos, filetes metálicos nas placas de circuito impresso, etc.). Restam as funções de armazenar e processar dados. Armazenar dados consiste em manter um dado em certo local enquanto se precisar dele, de tal forma que possa ser recuperado quando necessário. Dados podem ser armazenados de diferentes formas. Nos computadores, são armazenados sob a forma de uma combinação de elementos que podem assumir apenas os valores numéricos “um” ou “zero”, ou os valores lógicos equivalentes, “verdadeiro” ou “falso”. Para armazenar um desses elementos é necessário apenas um dispositivo capaz de assumir um dentre dois estados possíveis (um deles representando o “um” ou “verdadeiro”, e o outro representando o “zero”, ou “falso”), manter-se nesse estado até que alguma acção externa venha a alterá-lo (portanto, ser “bi-estável”), permitir que este estado seja alterado (pelo menos uma vez) e permitir que esse estado seja “lido” ou “recuperado”. Um dispositivo que exiba estas características denomina-se “célula de memória”. O circuito electrónico elementar capaz de armazenar dados é a célula de memória.

Ref. 1.1.3

Operadores de sistemas Informáticos EFJ-2

Carlos_Portatil
Text Box
Page 2: O processamento binário

Página 2Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

• Sistemas numéricos posicionais Um sistema numérico posicional é aquele em que o valor do “algarismo” ou “numérico” (representação gráfica ou símbolo de um número inferior à base) depende da posição deste algarismo no interior da representação do número (conjunto de algarismos). O sistema numérico que usamos correntemente, o sistema decimal (que adopta a “base” dez), é posicional. Por exemplo: no número 32.524 do sistema decimal, o primeiro algarismo “2” (contando a partir da direita) vale vinte unidades, enquanto o segundo vale duas mil unidades. Os valores variam devido à posição que ocupam na representação do número. A razão disso é que, um sistema numérico posicional como o sistema decimal, cada algarismo tem um valor igual ao do próprio algarismo multiplicado pela “base” elevada à posição ocupada pelo número. As posições são numeradas da direita para a esquerda a partir de zero. Então, lembrando que o sistema decimal usa a base dez, consegue-se o valor do número 32.524 somando as seguintes parcelas (obtidas considerando os algarismos tomados da direita para a esquerda): 4 Multiplicado por 10 (base) elevado à potência 0 (posição 0) = 4 x 1 = 4 2 multiplicado por 10 (base) elevado à potência 1 (posição 1) = 2 x 10 = 20 5 multiplicado por 10 (base) elevado à potência 2 (posição 2) = 5 x 100 = 500 2 multiplicado por 10 (base) elevado à potência 3 (posição 3) = 2 x 1.000 = 2.000 3 multiplicado por 10 (base) elevado à potência 4 (posição 4) = 3 x 10.000 = 30.000 A soma, naturalmente, resulta em 32.524. E basta reparar a forma pela qual o número dez foi utilizado na obtenção do valor do número para entender porque ele é a “base” do sistema numérico. Pode-se usar qualquer número como base para criar um sistema numérico posicional. Basta seguir a regra acima delineada: obtém-se o valor do número multiplicando-se o valor de cada numeral pela base elevada à posição ocupada por ele e somando todas as parcelas. Assim, o sistema decimal usa dez algarismos (de zero a nove), o sistema de base oito adoptará oito (de zero a sete) e o sistema de base dezasseis, muito usado em informática, necessitará de dezasseis algarismos (os mesmos zero a nove do sistema decimal ao qual se agregaram os símbolos “A”, “B”, “C”, “D” “E” e “F” para representar os algarismos de dez a quinze). O sistema numérico posicional de base dois chama-se “sistema binário” e utiliza, naturalmente, apenas dois algarismos, o zero e um.

Page 3: O processamento binário

Página 3Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Sistema binário; bits e bytes Computadores são constituídos internamente por circuitos eléctricos ou electrónicos. A grande maioria dos componentes dos circuitos eléctricos podem assumir apenas um de dois estados. Por exemplo: interruptores (ou transístores, se usados como “chaveadores de corrente”) podem estar fechados ou abertos; capacitores podem estar carregados ou descarregados; lâmpadas podem estar acesas ou apagadas; circuitos podem estar com energia ou sem energia; e assim por diante. Se estabelecermos que um desses estados representa o “um” e que o outro representa o “zero”, os dispositivos podem ser usados para representar números expressos no sistema binário, o sistema numérico posicional de base dois que usa apenas os algarismos, “um” e “zero”. Por exemplo, se deseja representar, neste sistema numérico, o número dez mediante um conjunto de lâmpadas, onde uma lâmpada acesa representa o algarismo “1” e uma lâmpada apagada o algarismo “0”. No sistema binário, o número dez assume a forma “1010” (para acompanhar este raciocínio basta saber que qualquer número pode ser expresso na base dois usando apenas os algarismos “1” e “0”; portanto, mesmo que não saiba fazer a conversão de números do sistema decimal para o binário, acredite que “dez” em binário é “1010”). Portanto, para representar o número dez bastam quatro lâmpadas uma ao lado da outra, a da esquerda acesa, sua vizinha apagada, a seguinte acesa e a última da direita apagada, na configuração “1010”. A Figura 1 mostra a soma de dois números representados por lâmpadas (que, por sua vez, representam os dígitos binários “1” e “0” em seus estados “acesa” e “apagada”), no sistema binário e no sistema decimal.

Soma de dois números

Page 4: O processamento binário

Página 4Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

A característica mais notável deste sistema numérico é a utilização exclusiva dos algarismos “1” e “0”, os chamados “dígitos binários” para exprimir todas as quantidades e todos os valores de quaisquer variáveis usando uma combinação de um determinado número de dígitos binários, ou seja, usando apenas os algarismos “1” e “0” (é por isso que uma célula de memória precisa armazenar apenas esses dois valores). O uso exclusivo dos algarismos “1” e “0” nos circuitos internos dos computadores pode levar a crer que apenas servem para resolver problemas muito específicos, cujas grandezas de entrada e saída assumam apenas dois valores e que portanto sua utilização há de ser extremamente limitada. Esta conclusão é falsa. Na verdade, toda e qualquer grandeza do mundo real, desde as cores e posições dos pontos que formam a imagem da Mona Lisa, os compassos, timbres e notas musicais que compõem as musicas dos nossos cantores preferidos, o conjunto de caracteres que até a sucessão ordenada de aminoácidos que formam o DNA dos seres vivos, em suma: toda e qualquer criação humana ou da natureza, seja ela qual for, pode ser codificada e representada (com maior ou menor precisão) sob a forma de um conjunto de números. E estes números podem ser expressos no sistema binário. O processo de conversão das grandezas do mundo real em quantidades expressas no sistema binário chama-se “digitalização” (por exemplo: o dispositivo denominado “scanner” nada mais é que um digitalizador de imagens, enquanto o processo de gravação de um CD de áudio é a digitalização de sons É por isso que o computador é uma máquina tão versátil, se presta a actividades tão disparatadas como calcular, escrever, desenhar, reproduzir músicas ou vídeo. Um dígito binário, então, é um algarismo do sistema numérico de base dois (há apenas dois: “zero” e “um”). Em inglês, “dígito binário” é “binary digit”, cuja contracção produz “bit”. Um bit, portanto, nada mais é que um dígito binário, um algarismo do sistema numérico posicional de base 2. O bit é a menor unidade de dado (ou informação) que pode ser armazenada num computador. Parece pouco, mas ainda assim essa quantidade mínima de informação tem algumas aplicações práticas (especialmente se associada a seus valores lógicos “verdadeiro” e “falso”, respectivamente). Mas, evidentemente, não se pode fazer muito processando valores de um único bit. Na linguagem humana escrita a menor unidade de informação é uma letra, ou “caracteres”. Letras isoladas, como “f” ou “S”, não podem representar muita coisa, mas a combinação de algumas delas pode significar muito, como “amor”, “vida”, “alma”. Embora os computadores sejam máquinas que trabalhão internamente apenas com grandezas numéricas, de longe sua utilização mais frequente é trabalhar com texto (este texto foi produzido com a ajuda de um computador e provavelmente você o está lendo com a ajuda de outro). Portanto uma das primeiras preocupações dos programadores de computadores foi desenvolver um método de codificar numericamente os caracteres, ou seja, exprimi-los sob a forma de números binários (ou “digitalizá-los”) de tal forma que fosse “entendido” por todos os computadores, mesmo os de diferentes fabricantes. Em suma: um método padronizado. Para exprimir todos os caracteres do alfabeto, precisamos usar números (binários, evidentemente) de quantos bits?

Page 5: O processamento binário

Página 5Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Vejamos. O alfabeto usado no idioma português tem 23 letras. O do idioma inglês, 26 (as mesmas 23 mais o “K”, o “W” e o “Y”). Como o computador diferencia maiúsculas de minúsculas, é necessário o dobro disso, 52 códigos, para exprimi-las todas. Incluindo os algarismos “0” a “9”, chegaríamos a 62 códigos. Então bastariam os números de zero a 61 para exprimir todas as letras maiúsculas, minúsculas e algarismos. Em binário, 61 é expresso por “111101”, um número de seis bits. Se um número de seis bits é suficiente para exprimir o maior dos códigos necessários, então é suficiente para exprimir todos os outros. Logo, bastam seis bits para exprimir todos os caracteres do alfabeto mais os dez algarismos do sistema decimal. Mas isso não é o suficiente para trabalhar com texto. Além das letras, há os sinais gráficos como ponto, vírgula, acentos, sinais de exclamação e interrogação, etc. E caracteres acentuados (para um computador a palavra “é” não é constituída de dois caracteres, a letra “e” minúscula com um acento agudo sobre ela, mas sim de um único carácter que nada tem a ver com os dois anteriormente citados). Juntando tudo isso com alguns códigos de controlo (como mudança de linha), símbolos, como @ e outros, a IBM propôs um código capaz de exprimir 128 elementos. Esse código usava sete bits mas não continha diversos caracteres acentuados e símbolos de uso corrente, que foram acrescentados posteriormente, assim como alguns usados para desenhar linhas e molduras, totalizando 256 elementos que poderiam ser expressos por números de oito bits. Essa representação foi adoptada como padrão nos EUA – e posteriormente em todo o mundo – com o nome de ASCII, sigla de (American Standard Code for Information Interchange), ou Código Americano Padrão para Intercâmbio de Informações, o conhecido “código ASCII”. Devido, sobretudo, à adopção do código ASCII (além de outras razões ligadas à fabricação de microprocessadores; por exemplo: na época em que o código ASCII foi adoptado, a maioria dos microprocessadores usavam posições de memórias internas ou “registradores” – capazes de armazenar oito bits), valores expressos em binário com oito algarismos passaram a ser usados para diversas finalidades, adquirindo importância suficiente para receber designação própria. A eles foi dado o nome de byte. Um byte é então qualquer número binário expresso com oito algarismos, ou oito bits. O maior valor que um byte pode assumir é “11111111” (todos os oito bits valendo “um”) que, convertido para o sistema numérico decimal, vale “255”. O menor valor que pode ser assumido por um byte é “00000000” que, evidentemente, vale “zero” no sistema decimal. O número total de códigos que podem ser expressos por um byte é 256 (de zero a 255), Note que um byte nada tem de especial, é apenas um número binário de oito algarismos, A sua importância na informática deriva apenas do fato do código ASCII ter adoptado números de oito bits, além de razões meramente construtivas ou operacionais. Por exemplo: os códigos enviados a impressoras para controlar a impressão têm oito bits, os valores trocados pelos modems entre computadores também, assim como diversas outras operações elementares de intercâmbio de informações. Além disso, memórias costumam ser organizadas de tal forma que as operações de leitura e escrita são feitas com quantidades de um byte ou de um múltiplo de bytes (oito, dezasseis, trinta e dois, sessenta e quatro ou cento e vinte e oito bits – o que corresponde a um, dois, quatro, oito e dezasseis bytes, respectivamente).

Page 6: O processamento binário

Página 6Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Múltiplos do byte Como as memórias, tradicionalmente, são organizadas de forma que sejam lidos ou escritos num byte ou um número par de bytes em cada operação de leitura ou escrita, adoptou-se como norma exprimir a capacidade de armazenamento de memórias em bytes ou em seus múltiplos. Os múltiplos do byte mais utilizados para exprimir capacidade de armazenamento ou taxas de transferência de dados são quilo byte (KB), mega byte (MB), giga byte (GB) e terra byte (TB). Levando-se em conta o uso padronizado dos prefixos “quilo”, “mega”, “giga” e “terra” no sistema decimal, o prefixo “quilo” deveria indicar mil bytes e cada um dos demais o anterior multiplicado por mil. Infelizmente, em informática, as coisas são um pouco mais complicadas. Os prefixos acima foram concebidos para exprimirem potências inteiras da base no sistema numérico de base dez. Assim, o prefixo “quilo” corresponde a mil vezes a unidade, ou 10^3, “mega” corresponde a um milhão, ou 10^6, “giga” a um bilhão, ou 10^9 e “terra” a um trilião, ou 10^12. O sistema binário usa a base 2. Ocorre que potências inteiras de dez não correspondem a potências inteiras de dois. Por exemplo: mil, expresso em binário, fica “1111101000”, não exactamente aquilo que podemos considerar um número “redondo” (ou, em linguagem menos popular, uma potência inteira da base). Em contrapartida, o número mais próximo a 1.000 que leva à uma potência inteira de dois é 1.024 (que corresponde a 2^10), que expresso em binário fica “10000000000”, tornando muito mais fácil efectuar cálculos com ele (em binário, naturalmente). Em razão disso, decidiu-se que um quilo byte, ou 1 KB, corresponde a 1.024 bytes, e não a 1.000 como seria de esperar. Pela mesma razão o prefixo “mega”, em vez de corresponder a 1.000 x 1.000, corresponde na realidade a 1.024 x 1.024 (ou 2^20), o que faz com que 1MB valha 1.048.576 bytes (e não um milhão de bytes). Fenómeno idêntico ocorre com o giga byte (1GB = 1.073.741.824 bytes, ou 2^30) e com o terra byte (1TB = 1.099.511.627.776, ou 2^40). Estes valores são utilizados na informática para exprimir, entre outras grandezas, o número de bytes transferidos entre dispositivos na unidade de tempo (taxas de transferência de dados) e capacidades de dispositivos de memória, interna (memória principal, ou memória RAM) ou externa (discos rígidos e similares).

Page 7: O processamento binário

Página 7Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

No que toca à memória interna não há muita controvérsia e geralmente o critério acima é respeitado. Se o fabricante de um computador informa que a máquina tem, digamos, 256 MB de memória principal, pode-se confiar que sua capacidade de memória seja de 256 x 1.024 x 1.024, ou 268.435.456 bytes. Mas, infelizmente, o mesmo não ocorre no que toca à memória externa, ou memória secundária, em geral constituída por discos magnéticos, ou discos rígidos. Nesta indústria de componentes informáticos, os fabricantes costumam calcular a capacidade pelos critérios acima descritos usados na informática, mas ao anunciá-la, “arredondam” para o valor mais próximo do sistema decimal. Um exemplo: digamos que a capacidade de um disco rígido seja de 37 GB calculados como o usual em informática, ou seja, de 37 x (1.024)^3 = 39.728.447.488 bytes. Essa é a capacidade real. Mas, ao anunciar o produto, o fabricante “arredonda” o valor para 40 biliões e declara que a capacidade de seu disco rígido é de 40 GB, um número ligeiramente maior que os 37 GB reais. Uma artimanha duvidosa do ponto de vista técnico, mas altamente vantajosa do ponto de vista comercial. Portanto, cuidado. Quando lidar com múltiplos de bytes, verifique se foram calculados usando o critério adoptado correntemente na informática, ou seja, que usa para os prefixos “quilo”, “mega”, “giga” e “terra” potências inteiras da base 2 (ou múltiplos de 1024), ou se usaram o critério comercial, que adopta potências de dez. Em certos casos, pode fazer diferença.

• Aprendendo a Somar

1) Sistema de numeração

a) O sistema de numeração foi criado pelo homem para controlar as quantidades dos seus diversos objetos.

b) Como existem numeros infinitos e inteiros, é impossível inventar um nome especial

para cada número, bem como representar cada um deles por um símbolo especial. Daí, a necessidade de certas regras que permitam ler e escrever qualquer número usando poucas palavras e poucos símbolos.

c) O conjunto de tais regras constitui um sistema de numeração.

d) “Sistema de Numeração é um conjunto de símbolos, palavras e regras que nos

permite escrever e dar nomes a todos os números.”

Page 8: O processamento binário

Página 8Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Tipos de Sistemas de Numeração

1. Sistemas Posicionais . a. São aqueles cujo valor do algarismo dependem do valor que ele ocupa no número

Exemplo: Sistema Decimal 1,2,3,4,5,6,7,8,9,10, etc. Observe o no 952 e o no 295. São formados pelos mesmos três algarismos: o 2, o 5 e o 9.

Repare no 1o caso (no 952):

o Porque o 2 ocupa a posição das unidades, ele vale 2 X 1 = 2; o Porque o 5 ocupa a posição das dezenas, ele vale 5 X 10 = 50; o Porque o 9 ocupa a posição das centenas, ele vale 9 X 100 = 900.

Repare no 2o caso (no 295)

o Porque o 5 ocupa a posição das unidades, ele vale 5 X 1 = 5; o Porque o 9 ocupa a posição das dezenas, ele vale 9 X 10 = 90; o Porque o 2 ocupa a posição das centenas, ele vale 2 X 100 = 200.

2. Sistemas não posicionais

a. São aqueles cujo valor do algarismo não depende do valor que ele ocupa no número. Exemplo: Sistema Romano, no sistema romano, cada algarismo decimal vale sempre o mesmo valor.

1= I 6 = VI 20 = XX 70 = LXX 300 = CCC 800 = DCCC 2 = II 7 = VII 30 = XXX 80 = LXXX 400 = CD 900 = CM 3 = III 8 = VIII 40 = XL 90 = XC 500 = D 1000 = M 4 = IV 9 = IX 50 = L 100 = C 600 = DC 5 = V 10 = X 60 = LX 200 = CC 700 = DCC

. Observe o no 952 e o no 295. São formados pelos mesmos três algarismos: o 2, o 5 e o 9.

o Repare no 1o caso (no 952): Em numeração romana, seria escrito CMLII.

o Repare no 2o caso (no 295) Em numeração romana escrito CCXCV – repare que qualquer uma das letras C, vale 100.

Page 9: O processamento binário

Página 9Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

3. Valor Intrínseco e Valor de Posição

a. Valor Intrínseco – é o próprio valor do algarismo. b. Valor de posição – é contado da direita para a esquerda e representa a posição que o

algarismo ocupa no número.

4. Base de um sistema

a. É o número de unidades necessárias para formar um conjunto padrão que auxilie na contagem de objectos.

5. Sistemas de numeração de Interesse em Processamento de Dados

a. Sistema Decimal

o Base 10 o Possui 10 símbolos o Símbolos: 0,1,2,3,4,5,6,7,8 e 9.

b. Sistema Octal

o Base 8 o Possui 8 símbolos o Símbolos: 0,1,2,3,4,5,6 e 7.

c. Sistema Binário

o Base 2 o Possui 2 símbolos o Símbolos: 0 e 1.

d. Sistema Hexadecimal o Base 16 o Possui 16 símbolos o Símbolos: 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E e F o Onde as letras valem respectivamente: 10, 11, 12, 13, 14 e 15.

6. Conversão de sistema

o Conversão de Sistemas, é a mudança de uma base para outra. Por exemplo, se estou no sistema decimal, estou a contar conjuntos de 10 em 10 elementos. Se estou no sistema octal, estou a contar conjuntos de 8 em 8 elementos.

o Como a base em que trabalhamos a maioria do tempo é a base dez, utilizamos o sistema decimal para fazer contagens na maioria do tempo de trabalho. Por isso, a base 10 é destacada como a base preferencial, enquanto as outras, são chamadas de base qualquer.

o Portanto, base qualquer, é qualquer uma, que não seja a base 10.

Page 10: O processamento binário

Página 10Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Tabela Numéricas e Potencias

Decimal Binário Octal hexadecimal

Page 11: O processamento binário

Página 11Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Hoje em dia, por 0.50 € comprasse uma máquina de calcular electrónica capaz de efectuar as quatro operações elementares, raiz quadrada, elevar ao quadrado, calcular percentagem, oferece ainda uma memória para armazenar resultados. As primeiras, lançadas há cerca de trinta anos, faziam mais ou menos a mesma coisa e custavam quase mil dólares americanos.

Já pensou em como é que uma máquina daquelas consegue “fazer contas”? Como, se utiliza apenas circuitos electrónicos, como é possível efectuar cálculos?

Na verdade é uma singela combinação de circuitos que resulta nesse aparente milagre tecnológico. Como a multiplicação é uma sucessão de somas, um circuito que some, é fácil desenvolver um que multiplique, ou que subtraía, já que a subtracção é uma soma “ao contrário”. Ou que divida, já que a divisão é o oposto da multiplicação. E assim por diante. Então, se conseguirmos desenvolver um circuito que seja capaz de somar usando portas lógicas, teremos a chave da questão. Mas para entendermos um circuito capaz de somar precisamos, primeiro, aprender a somar.

Então faça a seguinte soma:

(1001 + 0101)

Onde ambas as parcelas estão representadas em binário (ou seja, no sistema numérico posicional de base dois).

Como o sistema binário usa apenas dois algarismos, o “zero” e o “um”, só existem quatro combinações possíveis (além do “vai um” que veremos adiante): (0 + 0), (0 + 1), (1 + 0) e (1 + 1). Esta é toda a “tabuada de somar” dos números binários.

A soma (zero mais zero) dará sempre zero, seja qual for a base. Assim como, em toda base, somar (zero mais um) ou (um mais zero) dará sempre um. O problema começa quando somamos, em binário, (um mais um). Porque (1 + 1 = 2) e em binário não há algarismo para representar dois. Na verdade, em nenhum sistema numérico posicional existe um algarismo para representar a base.

Então, como representaremos “dois” em binário? É da mesma forma que representamos a base em qualquer sistema numérico posicional: movendo o “um” uma “casa” para a esquerda e acrescentando um “zero’ à sua direita. Em decimal, isso dá “10” que vale dez. Mas se reparar que o “10” está entre aspas? Exactamente porque este só representa “dez” em decimal. Na base oito, “10” representa oito, o valor da base. Na base dezasseis, “10” representa dezasseis; na base vinte, “10” representa vinte e assim por diante. Portanto, na base dois, “10” só pode representar dois. Logo, em binário: (1 + 1 = 10). E resista à tentação de ler isso que está entre parênteses como “um mais um é igual a dez”. Não é. Lembre-se que tudo ali está em binário, portanto deve ser lido “um mais um é igual a dois”, como em qualquer outra base. Então, somando parcelas algarismo a algarismo (ou bit a bit, já que um

Page 12: O processamento binário

Página 12Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

bit é justamente um “binary digit”, ou algarismo binário), sempre na mesma coluna ou “casa”, conforme o exemplo 1:

Figura 1: Soma de dígitos binários (bits)

Mas o que significa esse “Vai 1”?

Exactamente a mesma coisa que na soma de decimais. Quando a soma de dois algarismos que estão na mesma posição (ou “casa”) decimal resulta em um valor igual ou superior à base (no caso, dez), colocamos no resultado o que “sobra” de dez e somamos uma unidade à posição imediatamente superior. Veja um exemplo na Figura 2.

Figura 2: Soma na base dez

O algoritmo para somar números expressos em sistemas numéricos posicionais é sempre o mesmo: coloca-se os números um acima do outro, alinhados pela direita, ou seja, com as posições correspondentes aos algarismos menos significativos de cada parcela directamente acima uma da outra e soma-se os algarismos, “casa” a “casa”, ou seja, coluna a coluna, da direita para a esquerda. Sempre que a soma de dois algarismos ultrapassar o valor da base (dez, no caso do exemplo da Figura 2), anota-se na soma o valor do resto e soma-se uma unidade à casa vizinha da esquerda (o popular “vai um”).

Page 13: O processamento binário

Página 13Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Assim desta forma acostumemo-nos a numerar as posições, ou “casas” da direita para a esquerda a partir de zero. A posição de ordem 0 é a da extremidade direita, correspondente ao algarismo menos significativo. Portanto a de ordem 1 é a segunda a partir da direita e assim por diante.

Agora, voltemos ao assunto do “Vai 1”. No exemplo da Figura 2 ocorreu na casa de ordem 1, onde (7 + 8 = 15; resto 5), na de ordem 3, onde (6 + 4 = 10; resto zero) e na de ordem 5 (8 + 4 = 12; resto 2). Note que o último “vai um”, o da casa de ordem mais alta, a de ordem 5, foi simplesmente acrescentado à esquerda da soma, já que não havia nada com que somá-lo na casa de ordem 6.

Agora, apliquemos o mesmo algoritmo para somas em binário, ou seja, na base dois. Veja dois exemplos na Figura 3, o da esquerda mais simples, o da direita um pouco mais complicado (já veremos o porquê dessa complicação).

Figura 3: Soma na base dois

Page 14: O processamento binário

Página 14Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Examine primeiro a soma da esquerda, (1001 + 0101 = 1110), repara que o algoritmo é o mesmo usado para a soma em decimal: soma-se os dois algarismos (no caso, os dois “bits”, ou dígitos binários, já que os números são expressos em binário) em cada “casa” ou coluna da mesma ordem a partir da direita, ou seja, começando pela coluna de ordem zero, correspondente ao algarismo menos significativo, repara que na coluna de ordem 0 do exemplo da esquerda temos (1 + 1 = 0; Vai 1), pois a soma “um mais um” é igual a dois e dois é a base. Esse “um” que “vai” é somado com os dois zeros da casa de ordem 1 (a segunda a partir da esquerda), ficando: (“Vem 1” + 0 + 0 = 1). Continue repetindo o algoritmo, coluna a coluna, e veja o resultado.

Agora repare na soma do exemplo da direita. O “complicado” está na coluna de ordem 1, a segunda a partir da esquerda. Ela representa a soma de (1 + 1) à qual se deve acrescentar uma unidade devido ao “Vai 1” da coluna de ordem zero. Então, proceda assim: primeiro, some o “Vem 1” com o primeiro bit 1 e chegue ao resultado parcial (“Vem 1” + 1 = 0; Vai um). Pegue nesse um do “Vai 1” e passe para cima da coluna de ordem 2. Agora, some o “0” do resultado parcial com o segundo bit 1, o que resulta em (0 + 1 = 1). Escreva esse “um” no resultado e prossiga. Agora, que já sabemos somar, vamos aos circuitos somatórios.

A primeira coisa que temos que considerar é que a coluna mais fácil de somar é a coluna (ou “casa”) de ordem zero, a que corresponde aos algarismos menos significativos. E a razão é simples: como este é sempre o primeiro a ser somado, para este nunca “Vem 1”, já que não há coluna alguma antes dele. Então, se construirmos a tabela dos valores possíveis para a soma de dois bits da coluna de ordem zero teremos o resultado exibido na Figura 4.

Figura 4: Tabela de um somatório simples

Page 15: O processamento binário

Página 15Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

O circuito, então, deverá ter duas entradas, A e B, correspondentes aos bits a serem somados, e duas saídas, S (correspondente à soma dos bits A e B) e “Vai 1”, um bit a ser acrescentado à próxima coluna quando o resultado da soma for igual à base (dois, no caso). O diagrama lógico deste circuito é mostrado na Figura 5. Como ele apenas é usado para somar os bits menos significativos, ou seja, os da coluna de ordem zero, as entradas estão assinaladas como Ao e Bo.

Figura 5: Diagrama lógico de um circuito somatório parcial

Como vê, somar dois bits é mais simples do que parecia, basta combinar duas portas lógicas, uma XOR e uma AND e o problema está resolvido.

Mas como somar os demais bits de um número, aqueles nas posições (ou “casas”) de ordem maior que 0? O complicado, naturalmente, decorre do fato de ser necessário saber se “Veio 1” ou não da soma dos bits da posição anterior. O circuito terá então três entradas: os bits A e B a serem somados e o eventual “Vem 1” da posição de ordem imediatamente inferior. E duas saídas, S, o resultado da soma, e o “Vai 1” caso a soma iguale ou exceda o valor da base.

As combinações de valores são as representadas pela Tabela da Figura 7.

Figura 7: Tabela de um somatório completo

Page 16: O processamento binário

Página 16Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

O circuito correspondente, com as entradas, An, Bn (os bits a serem somados) e “Vem 1” (de um eventual “Vai 1” da coluna de ordem imediatamente inferior), e duas saídas, S, (a soma dos bits An, Bn e “Vem 1”), e “Vai 1” (o bit a ser acrescentado à próxima coluna quando o resultado da soma for igual ou superior à base) tem seu diagrama lógico mostrado na figura 8.

Figura 8: Diagrama lógico de um circuito somatório completo.

Também neste caso, apesar da complicação adicional trazida pelo “Vem 1”, somar dois bits contínua a ser uma tarefa simples. O número de portas lógicas a serem combinadas agora são cinco, duas XOR, duas AND e uma OR. Também nesse caso pode verificar o estado do circuito.

Nota:

- Xor Swap é um Algoritmo que usa a função lógica OU exclusivo para trocar os valores de duas variáveis do mesmo Verdadeiro se $a ou $b são verdadeiros, mas não ambos. - OR Verdadeiro se $a ou $b são verdadeiros.

Algoritmo - é uma sequência não ambígua de instruções que é executada até que determinada condição constitui o conjunto de processos (e símbolos que os representam) para efectuar um cálculo

Agora que sabemos como funcionam os somatórios parcial e completo, é fácil combiná-los para somar dois números de dois bits cada. Os bits menos significativos (de ordem 0) são somados usando um circuito somatório parcial e os bits de ordem imediatamente superior (ordem 1) precisam utilizar um somatório completo devido à possibilidade de “vir 1” da soma dos bits menos significativos. A Figura 10 mostra o diagrama lógico deste circuito.

Page 17: O processamento binário

Página 17Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Figura 10: Diagrama lógico de um circuito somatório de dois bits

Imagine que os números sejam ordenados um acima do outro, de forma que os bits menos significativos fiquem um sobre o outro, no caso Ao e Bo, somados pelo somatório parcial à direita da figura. Veja que o “Vai 1” desta soma é encaminhado directamente (como a entrada “Vem 1”) ao somatório completo, à esquerda. Os bits dos resultados das somas das duas colunas são mostrados em baixo, na saída. Caso haja um “estouro” (o resultado não couber em um número de dois bits, ou seja, se for maior que três) isso se reflectirá na saída “Vai 1” à esquerda, que assumirá o valor “um”.

Veja como este circuito funciona na Animação 3 (funciona na apresentação da aula - formador CR). Altere os valores das parcelas clicando sobre os botões rectangulares “Ligar” e “Desligar” para atribuir valores “zero” e “um” a cada bit das parcelas A e B (os valores resultantes são mostrados em binário e decimal á direita da figura, tanto para A e B quanto para a soma S; neste último caso, quando o valor da soma exceder a três, ou seja, quando a saída “Vai 1” estiver activa, o bit “1” correspondente é mostrado entre parênteses à esquerda dos dois bits da soma). Repare como, apesar da aparente complexidade, somar dois números é uma tarefa relativamente simples com o uso de circuitos digitais que empregam portas lógicas.

Page 18: O processamento binário

Página 18Formador de Cientifico e Tecnológico

Carlos Alberto Gonçalves Rodrigues

Os valores possíveis de números de dois bits vão de zero a quatro. O número total de combinações de somas é de dezasseis (4 x 4 = 16). Já um circuito somatório de duas parcelas de oito bits cada resultaria em somas de dois números que variam de zero a 255 e a combinação de todas as parcelas possíveis atingiria a 65.536 (256 x 256). O circuito não é muito complicado, mas resultaria num emaranhado de ligações que acabaria por dificultar a compreensão. Mas, para facilitar o entendimento e mostrar como pode-se combinar qualquer número de somatórios, o esquema em baixo, mostra o diagrama lógico de um circuito capaz de somar duas parcelas de quatro bits cada.

Figura 12: Diagrama lógico de um circuito somatório de quatro bits

Como vê, não há mistério nos circuitos digitais. Basta um pouco de paciência para entendê-los. O exemplo em cima é o diagrama lógico de um dispositivo capaz de efectuar somas de duas parcelas de quatro bits cada (ou seja, de dois números menores que 16). Mas o importante não é o tamanho das parcelas, o importante é o funcionamento do circuito. Se entendeu como o esquema funciona, entenderá o funcionamento de um circuito capaz de fazer somas de parcelas de qualquer tamanho, já que basta continuar combinando circuitos somatórios bit a bit para aumentar o tamanho das parcelas.

Se entendeu como somar, entenderá como subtrair, multiplicar e dividir, já que como vimos todas essas operações são baseadas na soma.