Commit 04c46313 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

parent 83373011
...@@ -436,6 +436,123 @@ ____ ...@@ -436,6 +436,123 @@ ____
278~10~ = 116~16~ 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]] [[sec_numeros_negativos]]
=== Números Binários Negativos === Números Binários Negativos
...@@ -446,9 +563,13 @@ necessário encontrar uma representação para números com sinal negativo. ...@@ -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 Existe uma grande variedade de opções, das quais nesta seção serão
apresentadas apenas três para representar valores negativos: apresentadas apenas três para representar valores negativos:
- sinal e amplitude/magnitude (S+M) - Sinal e amplitude/magnitude (S+M)
- complemento de 1 - Complemento de 1
- complemento de 2 - 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) ==== Sinal e Amplitude/Magnitude (S + M)
...@@ -473,9 +594,9 @@ positivo; se for 1, então é negativo. ...@@ -473,9 +594,9 @@ positivo; se for 1, então é negativo.
Exemplo: Exemplo:
____ ____
100~10~ = 01100100~2~ (com 8 bits) 01100100~2~ = 100~10~
____ ____
Invertendo todos os bits: Invertendo todos os bits:
...@@ -500,7 +621,7 @@ ____ ...@@ -500,7 +621,7 @@ ____
(((Complemento de 2))) (((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 Para determinar o negativo de um número, inverte-se todos os seus bits e
soma-se uma unidade. soma-se uma unidade.
...@@ -510,16 +631,19 @@ Representação binária:: 101~10~ = 01100101~2~ (com 8 bits) ...@@ -510,16 +631,19 @@ Representação binária:: 101~10~ = 01100101~2~ (com 8 bits)
Invertendo todos os bits:: 10011010~2~ 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: A representação em complemento para 2 tem as seguintes características:
- o bit da esquerda indica o sinal; - o bit da esquerda indica o sinal;
- possui processo para converter um número de positivo para negativo e de - possui processo para converter um número de positivo para negativo e de
negativo para positivo; 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. - a gama de valores que é possível representar com n bits é -2^n-1^ ... 2^n-1^-1.
====
Exemplo: Exemplo:
...@@ -529,7 +653,7 @@ Como o bit da esquerda é 1 este número é negativo. Invertendo todos os bits: ...@@ -529,7 +653,7 @@ Como o bit da esquerda é 1 este número é negativo. Invertendo todos os bits:
____ ____
00011011~2~ 00011011~2~
____ ____
Somando uma unidade: Somando uma unidade:
...@@ -542,91 +666,22 @@ Logo: ...@@ -542,91 +666,22 @@ Logo:
____ ____
11100100~2~ = – 28~10~ 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[]
=== Circuitos nos computadores para realizar as operações
==== Subtração nos computadores
Na eletrônica digital de dispositivos tais como computadores, circuitos Na eletrônica digital de dispositivos tais como computadores, circuitos
simples custam menos e operam mais rápido do que circuitos mais complexos. 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 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. 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 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. 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~. 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%"] image::images/sistema-de-numeracao/figura3.png[scaledwidth="60%"]
O microprocessador tem um circuito na ULA (Unidade Lógica e 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 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 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 ...@@ -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 ser interpretados de qualquer maneira. Isto nos permite trabalhar com números
com e sem sinal sem requerer diferentes circuitos para cada padrão. 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. 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 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 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, ...@@ -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 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. 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 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 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. 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 ...@@ -675,59 +730,6 @@ feito o complemento de 9 para cada número individualmente e depois deve ser som
o valor 1. 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]] [[sec_ponto_flutuante]]
=== Representação de Número Fracionário no Sistema Binário === 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