Aritmetica Binaria: mudanças entre as edições
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 | * 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: | ||
* | *Sinal e magnitude; | ||
*Complemento de 1; | *Complemento de 1; | ||
*Complemento de 2. | *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. | 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 | 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 | '''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==== | ||
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. | '''Complemento de 1''': Troque 0 por 1 e vice-versa. | ||
Linha 96: | Linha 102: | ||
====Complemento de 2==== | ====Complemento de 2==== | ||
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:
- Calcula-se o complemento de 1 do número;
- 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)