Aritmética Binária

Após estes dois primeiros Capítulos, que tiveram por função uma introdução básica aos fundamentos da Computação, vamos agora ver uma aplicação prática do raciocínio lógico abstrato e da sua materialização, pondo o computador a fazer operações que nos são familiares, como somar, subtrair, multiplicar ou dividir, só através de portas lógicas e com raciocínios cujas conclusões só podem ser duas: verdadeiro ou falso, as únicas possibilidades de uma expressão analisável por um computador.
No nosso mundo decimal tudo isto pode parecer um símbolo de impossibilidade, mas quando entramos no mundo do computador passamos a raciocinar no seu mundo binário, onde todas as conclusões se remetem à dualidade verdadeiro/falso, 1 ou 0, com tensão ou sem tensão. Veremos que aí já será muito mais facilmente compreensível. Só que vamos ter que voltar à escola e aprender de novo a essência das operações que já temos automatizadas, para podermos decompô-las em todos os passos que efetuamos e de que já não nos apercebemos e assim, estabelecer o seu algoritmo.

Algoritmo!? Parece um nome feio, mas não é. E não tem nada a ver com  matemática embora seja usado na resolução de muitos dos seus problemas. Um algoritmo é a simples decomposição de uma tarefa que se pretende executar nas suas mais ínfimas componentes. Uma receita de culinária é um algoritmo. Os algoritmos são tão complexos quão complexa for a tarefa que eles têm que decompor. E acreditem que há algoritmos deveras complexos. Mas não por culpa dos pobre coitados, antes devido à complexidade da tarefa que lhes foi dada para resolverem.
Porque um computador tem que ser ensinado sempre a partir das mais elementares simplicidades, temos que levar tudo o que queremos fazer à essência básica da sua composição, para que assim lhe possamos transmitir como pode fazer e repetir por nós, com  incrível rapidez, aquilo que pretendemos.

Com estes princípios básicos vamos agora entrar na aritmética binária. Neste Capítulo vamos analisar a soma, a subtração e a multiplicação enquanto sequência de somas, quando executadas na base 2 e com operadores lógicos.
A divisão, porque é efetuada por iterações e deslocações de bits será abordada depois de analisarmos alguns circuitos lógicos que nos permitirão executá-la. A própria multiplicação também é normalmente executada por método idêntico ao da divisão. No entanto, porque é possível executá-la por método que só utiliza o que analisámos até aqui, vamos abordá-la nesse contexto.

Mas os números com  que vamos trabalhar podem ser positivos e negativos. Como é que se representa um número negativo no sistema binário? O computador deve achar muito engraçada aquela decoração parecida com um traço que pomos antes dos números negativos, mas não faz a mínima ideia do que é. Ele é extremamente limitado. Só conhece 0 e 1. Assim mesmo, sem o tracinho. Então como é que lhe vamos dizer se um número é negativo ou positivo? É um dos temas que vamos abordar com a necessária profundidade. Representação de números binários em complemento para dois é como que se vai chamar a representação de números binários que podem ser positivos ou negativos, isto é, com sinal.

Esta questão da representação do número negativo é um conceito que até para a operação de subtração é importante. A subtração de um número a outro [3-2 ou (+3)-(+2)] não é mais do que a soma de um número com o simétrico daquele que se pretende subtrair ao primeiro [(+3)+(-2)]. É desta forma que a subtração vai ser tratada.

Outro tema interessante que vamos tratar é a questão do Excesso de uma operação. O que é isto? No nosso sistema decimal o excesso não é tema que necessite de abordagem. Ou há ou não há. Ou é 1 ou 0. Ou vai 1 ou não vai nada. Mas no sistema de base 2, concretamente na representação de números em complemento para dois, a questão não é assim  tão liquida. Na soma do bit de maior ordem de um número pode ou não haver excesso independentemente do seu valor ser 1 ou 0. Pode haver e ser 0 e pode não haver e ser 1. Lá veremos como, pois não pretendemos deixar nada ao acaso.

Ver a síntese global deste trabalho

Inserimos de seguida o índice da edição em livro como forma de descrição dos temas abordados neste Capítulo

C3_Indice_Prt