sábado, 15 de março de 2014

Operações com Binários - Multiplicação e Divisão

Operações com Binários
Multiplicação e Divisão

Vamos ver agora a tabuada da multiplicação:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1

Obs.: O processo é idêntico à multiplicação entre números decimais.

Exemplo:
Efetuar: 1012 x 1102

Solução:


            No entanto, a multiplicação em computadores é feita, também, por um artifício: para multiplicar A por n somamos A com A (n-1) vezes.
Exemplo:

4 x 3 = 4 + 4 + 4 = 12

            E a divisão também pode ser feita por subtrações sucessivas, até o resultado zerar ou ficar negativo. Este artifício serve apenas para divisões inteiras.
Por exemplo:

16 ÷ 4 → 16 - 4 = 12 → 12 - 4 = 8 → 8 - 4 = 4 → 4 – 4 = 0

            O número de subtrações indica o resultado da divisão inteira, neste caso, igual a 4.

Obs.: Podemos concluir que qualquer operação aritmética pode ser realizada em computadores através de somas (diretas ou em complemento). Com isso diminui-se o número de circuitos lógicos de operações para o processador.

sexta-feira, 14 de março de 2014

Operações com Binários - Soma e Subtração

Operações com Binários

            Como o computador manipula os dados (números) através de uma representação binária, iremos mostrar agora a aritmética do sistema binário, a mesma usada pela ULA (Unidade Lógica e Aritmética) dos processadores.

Soma e Subtração

A tabuada da soma aritmética em:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (e “vai um” para o dígito de ordem superior)
1 + 1 + 1 = 1 (e “vai um” para o dígito de ordem superior)

Por exemplo:
Efetuar 0111002 + 0110102
Soma-se as posições da direita para esquerda, tal como uma soma decimal.

Solução:


A tabuada da subtração aritmética binária:
0 - 0 = 0
0 - 1 = 1 (“vem um do próximo”)
1 - 0 = 1
1 - 1 = 0

Obs.: Como é impossível tirar 1 de 0, o artifício é “pedir emprestado” 1 da casa de ordem superior, ou seja, na realidade o que se faz é subtrair 12 de 102 e encontramos 12 como resultado, devendo então subtrair 1 do dígito de ordem superior. Este algoritmo é exatamente o mesmo da subtração em decimal.
Por exemplo: 1111002 – 0110102 = ?

Obs.: Não esqueça, subtrai-se as colunas da direita para a esquerda, tal como uma subtração decimal.
Solução:


Subtração nos computadores

            Na eletrônica digital de dispositivos tais como computadores, circuitos simples custam menos e operam mais rápido do que circuitos mais complexos. Logo, números em complemento de dois são usados na aritmética, pois eles permitem o uso dos circuitos mais simples, baratos e rápidos.
            Uma característica do sistema de complemento de dois é que tanto os números com sinal quanto os números sem sinal podem ser somados pelo mesmo circuito. Por exemplo, suponha que você deseja somar os números sem sinal 13210 e 1410.


            O microprocessador tem um circuito na ULA (Unidade Lógica e Aritmética) que pode somar números binários sem sinal, quando aparece o padrão 100001002 em uma entrada e 000011102 na outra entrada, resulta 100100102 na saída.
            Surge a pergunta: como a ULA sabe que os padrões de bits nas entradas representam número sem sinal e não números em complemento de dois? E a resposta é: não sabe. A ULA sempre soma como se as entradas fossem números binários sem sinal. Sempre produzirá o resultado correto, mesmo se as entradas forem números em complemento de dois.


            Isto comprova um ponto muito importante. O somador na ULA sempre soma padrões de bits como se eles fossem números binários sem sinal. É a nossa interpretação destes padrões que decide se números com ou sem sinal estão sendo tratados. O bom do complemento de dois é que os padrões de bits podem ser interpretados de qualquer maneira. Isto nos permite trabalhar com números com e sem sinal sem requerer diferentes circuitos para cada padrão.
            A aritmética de complemento de dois também simplifica a ULA em outro ponto. Todo microprocessador precisa da instrução de subtração. Assim, a ULA deve ser capacitada a subtrair um número de outro. Entretanto, se isto necessitar de um circuito de subtração separado, a complexidade e o custo da ULA seriam aumentados. Felizmente, a aritmética de complemento de dois permite a ULA, realizar operações de subtração usando um circuito somador. Ou seja, a CPU usa o mesmo circuito tanto para soma como para subtração.

Subtração em complemento de dois

            Uma vez que o complemento de dois foi formado, a CPU pode realizar uma subtração indiretamente pela adição do complemento de dois do Subtraendo com Minuendo. Não esquecendo de ignorar o último transporte da adição.
            Como exemplo temos a subtração de 6910 (Minuendo) por 2610 (Subtraendo).

Jogue fora o transporte final:


Fica o desafio de descobrir porque o valor 7410 é o complemento de 10 do número 2610, a regra é análoga do complemento de 2 binária, ou seja, primeiro deve ser feito o complemento de 9 para cada número individualmente e depois deve ser somado o valor 1.
            Este método permite à CPU realizar subtração e adição com o mesmo circuito. O método que a CPU usa para realizar subtração é de pouca importância para o uso de microprocessadores.

quinta-feira, 13 de março de 2014

Transformação de Números Binários - Negativos

Números Binários Negativos

            Os computadores lidam com números positivos e números negativos, sendo necessário encontrar uma representação para números com sinal negativo. Existe uma grande variedade de opções, das quais nesta seção serão apresentadas apenas três para representar valores negativos:
  • Sinal e amplitude/magnitude (S+M);
  • Complemento de 1;
  • Complemento de 2.

Sinal e Amplitude/Magnitude (S + M)

            Como o próprio nome indica, a representação sinal e amplitude utiliza um bit para representar o sinal, o bit mais à esquerda: 0 para indicar um valor positivo, 1 para indicar um valor negativo.
           

Complemento de 1

            Na representação em complemento de 1 invertem-se todos os bits de um número para representar o seu complementar: assim, se converte um valor positivo para um negativo, e vice-versa. Quando o bit mais à esquerda é 0, esse valor é positivo; se for 1, então é negativo.
Exemplo:

10010 = 011001002 (com 8 bits)

Invertendo todos os bits:

100110112 = –10010

            O problema desta representação é que existem 2 padrões de bits para o 0, havendo assim desperdício de representação:

010 = 000000002 = 111111112


Complemento de 2

            A solução encontrada consiste em representar os números em complemento de 2. Para determinar o negativo de um número, inverte-se todos os seus bits e soma-se uma unidade.
Exemplo:

Representação binária
10110 = 011001012 (com 8 bits)

Invertendo todos os bits
100110102

Somando uma unidade
100110102 + 1 = 100110112 = –10110

A representação em complemento para 2 tem as seguintes características:
  • o bit da esquerda indica o sinal;
  • possui processo para converter um número de positivo para negativo e de negativo para positivo;
  • o 0 tem uma representação única: todos os bits a 0;
  • a gama de valores que é possível representar com n bits é -2n-1 … 2n-1-1.
Exemplo:
            Qual o número representado por 111001002 (com 8 bits)? Como o bit da esquerda é 1 este número é negativo.
Invertendo todos os bits:

000110112

Somando uma unidade:

000110112 + 1 = 000111002 = 2810

Logo:

111001002 = – 2810

quarta-feira, 12 de março de 2014

Transformação de Números Binários - Positivos


          Durante as próximas postagens iremos falar sobre como o computador transforma o código binário em informações que podemos ver na tela, como letras e números. Abaixo, uma pequena introdução de como funciona a representação binária.



Números Binários Positivos

            Para transformar um número decimal para número binário, deve-se realizar uma série de divisões do número por dois e parando, somente, quando se encontrar o quociente 1. Conforme mostrado abaixo:

           
            O número na forma binária seria do último quociente até o primeiro resto. Então o número 19 possui a sua forma binária igual à 10011.
            Para converter os números binários em números decimais deve-se somar o produto do dígito binário e dois elevado a posição do dígito, conforme a imagem abaixo: 


            Como visto acima, o número 01100 corresponde à 12 em número decimal.

    Representação de Número Fracionário no Sistema Binário
     
       Esta notação conhecida como Notação de Ponto Fixo, utiliza um ponto que funciona da mesma forma que o ponto da notação decimal.

Conversão Decimal > Binário

            O processo é bem simples e trabalharemos com um número pequeno. 8,7. Consiste em converter primeiramente a parte inteira do número para binário.

            
      Pronto! Temos metade do trabalho feito. Agora vamos nos focar apenas na parte fracionária. Para isso, vamos sempre multiplicá-la por 2, extrair a parte inteira (à esquerda) dessa multiplicação e separá-la. A parte separada será exatamente a parte fracionária dos números binários. Confira:


Conversão Binário > Decimal

            Assim como fazemos na conversão binário->decimal, será necessário fazer uma indexação dos binários da direita para a esquerda, começando do zero, mas vamos trabalhar com números reais também, então, números abaixo de zero serão indexados com -1, -2, -3…..
            Nossa conversão utilizará 4 bits de precisão, então, chegaremos próximo ao número 8,7. Veja como é feito:


            Finalmente, somando os números, teremos então o seguinte resultado:


            Pronto! Poderemos “arredondar” para cima a fim de obter o número 8,7.


terça-feira, 11 de março de 2014

O Código Binário

O Código Binário

            O sistema decimal é muito usado no cotidiano, pois nos oferece uma forma mais simples de manipular os números em determinadas situações matemáticas, é composto por dez números: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
            O uso da Matemática em situações diversas não diz respeito somente ao homem, os computadores utilizam números para efetuar cálculos complexos com uma maior rapidez e praticidade. O sistema binário é usado pelos computadores é e constituído de dois dígitos o 0 e o 1. A combinação desses dígitos leva o computador a criar várias informações: letras, palavras, textos, cálculos.
            A criação do sistema de numeração binária é atribuída ao matemático alemão Leibniz.

Por que o sistema binário é mais eficiente que o sistema decimal?

            Se trabalhasse com o sistema decimal um computador precisaria codificar 10 níveis de referência para caracterizar os 10 dígitos do sistema utilizado. Esses níveis de referência poderiam ser valores de tensão (0V, 1V, 2V, etc.) que precisariam ser definidos e interpretados de maneira clara e precisa pela máquina.
            Quanto maior o número de interpretações maior a probabilidade de erro. Para decidir que está lendo o número 5 a máquina precisaria ter certeza de que o que leu não é: 0, 1, 2, 3, 4, 6, 7, 8, 9.
            Sendo assim, o sistema de numeração mais seguro deveria ser aquele com o menor número de símbolos (dígitos), ou seja, o sistema binário com apenas dois dígitos (0 e 1) seria mais preciso.
            Usando a operação de apenas dois dígitos ou estados da álgebra booleana (sim ou não, verdadeiro ou falso, ligado ou desligado e 0 ou 1, por exemplo), o sistema binário permite que os computadores processem dados com maior efetividade.
Qualquer valor diferente desses dois algarismos será desprezado pela máquina, fato que promove maior confiabilidade aos cálculos.
            Aliado à lógica booleana, o sistema binário permite representar números, caracteres ou símbolos, e realizar operações lógicas ou aritméticas por meio de circuitos eletrônicos digitais (também chamados de portas lógicas).



            O sistema operacional do PC identifica as combinações numéricas através do valor positivo ou negativo aplicado pelo programador aos zeros e uns do programa em execução. Assim, a leitura dos códigos binários funciona como um interruptor: quando o computador identifica o 1, a luz acende; ao se deparar com o 0, a luminosidade é apagada (são feitas milhares de leituras por segundo!).
            Por meio desses sinais, a máquina pode realizar os cálculos e processamentos necessários para transformar o conteúdo codificado em um formato que possamos compreender – seja texto, imagem ou som.
            Todos os softwares são codificados e armazenados com base no sistema binário. Isso significa que, se pudéssemos abrir o disco rígido do computador e ler o que está escrito nele, veríamos uma lista, aparentemente, interminável de zeros e uns.
            Os computadores geralmente são idealizados para armazenar instruções em múltiplos de bits, chamados bytes, que é uma palavra formada por BIT e “eight” (oito), que designa uma unidade de informação composta por oito bits e utilizada como medida da magnitude de uma memória.
            Antigamente o byte tinha tamanho variável, mas, por meio de tentativas e erros, durante os últimos 50 anos, foi estabelecido e aceito o byte com oito bits, que também é chamado de octeto.
            Assim, com 8 bits em um byte, é possível representar 256 valores, de 0 a 255:

0 = 00000000
1 = 00000001
2 = 00000010
3 = 00000011
...
253 = 11111101
254 = 11111110
255 = 11111111

            Quando os primeiros computadores foram projetados, percebeu-se que seriam necessários cerca de 250 códigos diferentes para representar, com valores diferentes, todos os números; letras maiúsculas, minúsculas e acentuadas e os demais símbolos.
            Então, cada caractere diferente (número, letra ou símbolo), recebeu um valor. Por exemplo, o “A” maiúsculo, foi chamado de 65, o “B”, de 66 e assim por diante.
                

O que é Aritmética Computacional

O que é Aritmética Computacional

            As palavras de um computador são compostas por bits e podem representar números armazenados na memória. Estes números podem ter diferentes significados, como inteiros ou reais, serem positivos ou negativos. A manipulação dos números inclui operações de soma, subtração, multiplicação e divisão.

            O objetivo deste blog é mostrar como o hardware processa as informações que aparecem na tela do computador como o conhecemos hoje.