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.
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.
Nenhum comentário:
Postar um comentário