Aritmetica Binaria: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Linha 6: Linha 6:
* 0 + 1 = 1                       
* 0 + 1 = 1                       
* 1 + 0 = 1                     
* 1 + 0 = 1                     
* 1 + 1 = 0 e vai 1 (''Carry'' = 1)
* 1 + 1 = 10 = 0 e vai 1 para próxima posição(''Carry'' = 1)
* 1 + 1 + 1 = 11 = 1 e vai 1 para próxima posição(''Carry'' = 1)


'''Exemplo''':
'''Exemplo''':
Linha 21: Linha 22:
* 1 - 0 = 1                     
* 1 - 0 = 1                     
* 1 - 1 = 0
* 1 - 1 = 0
* 0 - 1 = 1 empresta 1 ('''1'''0 - 1 = 1)
* 0 - 1 = 1 precisa emprestar 1 ('''1'''0 - 1 = 1)


'''Exemplo''':
'''Exemplo''':
Linha 60: Linha 61:
'''Números sem sinal''':
'''Números sem sinal''':


A representação de números sem sinal aproveita todos os bits do número para representar quantidades: de 0 até 2<sup>n</sup> - 1 (2<sup>n</sup> valores diferentes).
A representação de números sem sinal em um computador aproveita todos os bits do número para representar quantidades: de 0 até 2<sup>n</sup> - 1 (2<sup>n</sup> valores diferentes).
Por exemplo, um número de 6 bits pode armazenar números binários de 000000 até 111111 (de 0 a 63 em decimal). Isto representa a magnitude do número.
 


'''Números positivos e negativos''':
'''Números positivos e negativos''':


A representação dos números positivos e negativos também permite representar quantidades em função do número de bits do número, entretanto, precisam reservar um bit para a representação do sinal.
A representação dos números positivos e negativos em um computador também permite representar quantidades em função do número de bits do número, entretanto, precisam reservar um bit para a representação do sinal (+ ou -). Isto é feito em geral acrescentando ao número um outro bit, chamado '''bit de sinal'''.


Existem várias formas de representar um número negativo, as mais usadas são:
Existem várias formas de representar um número negativo, as mais usadas são:
*Módulo e sinal;
*Sinal e magnitude;
*Complemento de 1;
*Complemento de 1;
*Complemento de 2.
*Complemento de 2.


==== Módulo e sinal====
==== Sinal e magnitude====
O bit mais a esquerda representa o '''sinal''': 0 indica número positivo e 1 indica número negativo.
O bit mais a esquerda representa o '''sinal''': 0 indica número positivo e 1 indica número negativo.
Os (N - 1) bits restantes representam o '''módulo''' do número.
Os (N - 1) bits restantes representam a '''magnitude''' do número.


Quantidade simétrica: -(2<sup>N-1</sup> - 1) ≤ X ≤ 2<sup>N-1</sup> - 1
Quantidade simétrica: -(2<sup>N-1</sup> - 1) ≤ X ≤ 2<sup>N-1</sup> - 1
Linha 80: Linha 83:
  N = 8, -127 ≤ X ≤ 127
  N = 8, -127 ≤ X ≤ 127
  '''0'''0101010<sub>2</sub> = + 42<sub>10</sub>
  '''0'''0101010<sub>2</sub> = + 42<sub>10</sub>
  '''1'''0101010<sub>2</sub> = - 42<sub>10</sub> (sinal e módulo)
  '''1'''0101010<sub>2</sub> = - 42<sub>10</sub> (sinal e magnitude)
 
Embora a representação sinal/magnitude seja direta, os computadores e calculadoras não a utilizam porque a implementação dos circuitos é mais complexa que outras formas de representação.
 
A representação mais utilizada é o '''complemento de 2'''.
 
====Complemento de 1====
====Complemento de 1====
O bit mais a esquerda representa o '''sinal''': 0 indica número positivo e 1 indica número negativo. Os (N - 1) bits restantes representam o '''módulo''' do número.
A representação de um número em '''complemento de 1''' é o simétrico dele, com todos os bits complementados, incluindo o bit de sinal.
 
Um número positivo tem o bit mais a esquerda como 0. A representação deste mesmo número como negativo é o simétrico dele, com todos os bits complementados, incluindo o sinal.


  '''Complemento de 1''': Troque 0 por 1 e vice-versa.
  '''Complemento de 1''': Troque 0 por 1 e vice-versa.
Linha 96: Linha 102:


====Complemento de 2====
====Complemento de 2====
O bit mais a esquerda representa o '''sinal''': 0 indica número positivo e 1 indica número negativo. Os (N - 1) bits restantes representam o '''módulo''' do número.
O '''complemento de 2''' é determinado em dois passos:
O '''complemento de 2''' é determinado em dois passos:
#Calcula-se o '''complemento 1''' do número;
#Calcula-se o '''complemento de 1''' do número;
#Soma-se '''1''' ao complemento 1.  
#Soma-se '''1''' ao complemento de 1.  
*Despreza-se o transporte no bit mais significativo, caso exista.
*Despreza-se o transporte no bit mais significativo, caso exista.



Edição das 13h19min de 10 de março de 2014

Aritmética Binária

Adição em binário

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10 = 0 e vai 1 para próxima posição(Carry = 1)
  • 1 + 1 + 1 = 11 = 1 e vai 1 para próxima posição(Carry = 1)

Exemplo:

  1   1    <- vai 1
   101010
 + 110011
 --------
  1011101

Subtração em binário

  • 0 - 0 = 0
  • 1 - 0 = 1
  • 1 - 1 = 0
  • 0 - 1 = 1 precisa emprestar 1 (10 - 1 = 1)

Exemplo:

    1      <- empresta 1
   110011
 - 101010
 --------
   001001

Multiplicação em binário

  • 0 * 0 = 0
  • 0 * 1 = 0
  • 1 * 0 = 0
  • 1 * 1 = 1

Exemplo (segue a lógica da multiplicação em decimal):

     1010 (multiplicando)
   x  101 (multiplicador)
   ------
     1010
    0000
 + 1010
 --------
   111010 (produto)

Número de dígitos do produto = Número de dígitos do multiplicando + Número de dígitos do multiplicador.

  • Exemplo: 8 bits x 8 bits = 16 bits

Divisão em binário

Segue a lógica da divisão em decimal. É uma operação mais trabalhosa e de uso pouco frequente. Não vamos estudá-la agora.

Números positivos e negativos

Números sem sinal:

A representação de números sem sinal em um computador aproveita todos os bits do número para representar quantidades: de 0 até 2n - 1 (2n valores diferentes). Por exemplo, um número de 6 bits pode armazenar números binários de 000000 até 111111 (de 0 a 63 em decimal). Isto representa a magnitude do número.


Números positivos e negativos:

A representação dos números positivos e negativos em um computador também permite representar quantidades em função do número de bits do número, entretanto, precisam reservar um bit para a representação do sinal (+ ou -). Isto é feito em geral acrescentando ao número um outro bit, chamado bit de sinal.

Existem várias formas de representar um número negativo, as mais usadas são:

  • Sinal e magnitude;
  • Complemento de 1;
  • Complemento de 2.

Sinal e magnitude

O bit mais a esquerda representa o sinal: 0 indica número positivo e 1 indica número negativo. Os (N - 1) bits restantes representam a magnitude do número.

Quantidade simétrica: -(2N-1 - 1) ≤ X ≤ 2N-1 - 1

Exemplo:

N = 8, -127 ≤ X ≤ 127
001010102 = + 4210
101010102 = - 4210 (sinal e magnitude)

Embora a representação sinal/magnitude seja direta, os computadores e calculadoras não a utilizam porque a implementação dos circuitos é mais complexa que outras formas de representação.

A representação mais utilizada é o complemento de 2.

Complemento de 1

A representação de um número em complemento de 1 é o simétrico dele, com todos os bits complementados, incluindo o bit de sinal.

Complemento de 1: Troque 0 por 1 e vice-versa.

Quantidade simétrica: -(2N-1 - 1) ≤ X ≤ 2N-1 - 1

Exemplo:

N = 8, -127 ≤ X ≤ 127
001010102 = + 4210
110101012 = - 4210 (complemento de 1)

Complemento de 2

O complemento de 2 é determinado em dois passos:

  1. Calcula-se o complemento de 1 do número;
  2. Soma-se 1 ao complemento de 1.
  • Despreza-se o transporte no bit mais significativo, caso exista.

Quantidade assimétrica: -2N-1 ≤ X ≤ 2N-1 - 1

Exemplo:

N = 8, -128 ≤ X ≤ 127

Positivo:

001010102 = + 4210

Negativo:

Passo 1: calcula-se o complemento 1 do número
 00101010 (positivo)
 11010101 (complemento 1)
Passo 2: soma-se 1 ao complemento 1
 11010101
+       1
---------
 110101102 = - 4210 (complemento de 2)