Commit a500fe97 authored by Eduardo de Santana Medeiros Alexandre's avatar Eduardo de Santana Medeiros Alexandre
Browse files

cap3 Reorganização das seções de Aritmética Binária e Complemento de 2 #20

closes #20
parent 83373011
......@@ -436,6 +436,123 @@ ____
278~10~ = 116~16~
____
=== Aritmética Binária
Como o computador manipula os dados (números) através de uma representação
binária, iremos estudar agora a aritmética do sistema binário, a mesma usada
pela ULA (Unidade Lógica e Aritmética) dos processadores.
[[sec_soma_binaria]]
==== Soma e Subtração Binária
(((Soma binária)))(((Subtração binária)))
A tabuada da soma aritmética binária:
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 011100~2~ + 011010~2~
____
NOTE: Soma-se as posições da direita para esquerda, tal como uma soma decimal.
Solução:
image::images/sistema-de-numeracao/figura1.png[scaledwidth="40%"]
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
NOTE: 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 1~2~ de
10~2~ e encontramos 1~2~ 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: 11100~2~ – 01010~2~ = ?
Solução:
image::images/sistema-de-numeracao/figura2.png[scaledwidth="25%"]
NOTE: Não esqueça, subtrai-se as colunas da direita para a esquerda, tal como
uma subtração decimal.
Você pode assistir uma aula sobre soma e subtração binária no vídeo a seguir.
.Vídeo sobre Soma e Subtração Binária: http://youtu.be/NeQBC9Z5FHk
ifdef::livro-pdf[]
["qrcode", size=10, scaledwidth="30%"]
-------------------------
http://youtu.be/NeQBC9Z5FHk
-------------------------
endif::livro-pdf[]
ifdef::livro-html[]
+++
<?dbhtml-include href="videos/aritmeticaBinaria.html"?>
+++
endif::livro-html[]
==== Multiplicação e divisão binária
(((Multiplicação binária)))
Vamos ver agora a tabuada da multiplicação:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
NOTE: O processo de multiplicação binário é idêntico ao decimal.
Exemplo:
Efetuar: 101~2~ x 110~2~
Solução:
image::images/sistema-de-numeracao/figura5.png[scaledwidth="40%"]
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.
NOTE: 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.
[[sec_numeros_negativos]]
=== Números Binários Negativos
......@@ -446,9 +563,13 @@ 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)
- Complemento de 1
- Complemento de 2
A representação de **Complemento de 2** é a mais utilizada, mas para
compreendê-la é necessário primeiro conhecer as anteriores, que são
mais simples.
==== Sinal e Amplitude/Magnitude (S + M)
......@@ -473,9 +594,9 @@ positivo; se for 1, então é negativo.
Exemplo:
____
100~10~ = 01100100~2~ (com 8 bits)
01100100~2~ = 100~10~
____
Invertendo todos os bits:
......@@ -500,7 +621,7 @@ ____
(((Complemento de 2)))
A solução encontrada consiste em representar os números em *complemento de 2*.
Na representação do **complemento de 2** não há disperdiço.
Para determinar o negativo de um número, inverte-se todos os seus bits e
soma-se uma unidade.
......@@ -510,16 +631,19 @@ Representação binária:: 101~10~ = 01100101~2~ (com 8 bits)
Invertendo todos os bits:: 10011010~2~
Somando uma unidade:: 10011010~2~ + 1 = 10011011~2~ = –101~10~
Somando uma unidade:: 10011011~2~ = 10011010~2~ + 1 = –101~10~
[IMPORTANT]
====
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;
- o 0 tem uma representação única: todos os bits iguais a 0;
- a gama de valores que é possível representar com n bits é -2^n-1^ ... 2^n-1^-1.
====
Exemplo:
......@@ -529,7 +653,7 @@ Como o bit da esquerda é 1 este número é negativo. Invertendo todos os bits:
____
00011011~2~
____
Somando uma unidade:
......@@ -542,91 +666,22 @@ Logo:
____
11100100~2~ = – 28~10~
____
=== Aritmética Binária
Como o computador manipula os dados (números) através de uma representação
binária, iremos estudar agora a aritmética do sistema binário, a mesma usada
pela ULA (Unidade Lógica e Aritmética) dos processadores.
[[sec_soma_binaria]]
==== Soma e Subtração Binária
(((Soma binária)))(((Subtração binária)))
A tabuada da soma aritmética binária:
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 011100~2~ + 011010~2~
____
NOTE: Soma-se as posições da direita para esquerda, tal como uma soma decimal.
Solução:
image::images/sistema-de-numeracao/figura1.png[scaledwidth="40%"]
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
NOTE: 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 1~2~ de
10~2~ e encontramos 1~2~ 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: 11100~2~ – 01010~2~ = ?
Solução:
image::images/sistema-de-numeracao/figura2.png[scaledwidth="25%"]
NOTE: Não esqueça, subtrai-se as colunas da direita para a esquerda, tal como
uma subtração decimal.
Você pode assistir uma aula sobre soma e subtração binária no vídeo a seguir.
.Vídeo sobre Soma e Subtração Binária: http://youtu.be/NeQBC9Z5FHk
ifdef::livro-pdf[]
["qrcode", size=10, scaledwidth="30%"]
-------------------------
http://youtu.be/NeQBC9Z5FHk
-------------------------
endif::livro-pdf[]
ifdef::livro-html[]
+++
<?dbhtml-include href="videos/aritmeticaBinaria.html"?>
+++
endif::livro-html[]
==== Subtração nos computadores
=== Circuitos nos computadores para realizar as operações
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.
==== Circuito somador com complemento de 2
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 132~10~ e 14~10~.
image::images/sistema-de-numeracao/figura3.png[scaledwidth="60%"]
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 10000100~2~ em uma entrada e 00001110~2~ na outra entrada, resulta
......@@ -647,6 +702,8 @@ 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.
==== Circuito subtrator com complemento de 2
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
......@@ -655,8 +712,6 @@ 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.
......@@ -675,59 +730,6 @@ feito o complemento de 9 para cada número individualmente e depois deve ser som
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.
==== Multiplicação e divisão binária
(((Multiplicação binária)))
Vamos ver agora a tabuada da multiplicação:
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
NOTE: O processo é idêntico à multiplicação entre números decimais.
Exemplo:
Efetuar: 101~2~ x 110~2~
Solução:
image::images/sistema-de-numeracao/figura5.png[scaledwidth="40%"]
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.
NOTE: 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.
[[sec_ponto_flutuante]]
=== Representação de Número Fracionário no Sistema Binário
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment