Aritmetica Binaria
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
Exercícios:
- Efetue a soma dos seguintes pares de números binários:
- 10110 + 00111
- 011101 + 010010
- 10001111 + 00000001
- Efetue a subtração dos seguintes pares de números binários:
- 101101 - 010010
- 10001011 - 00110101
- 101011101 - 011100110
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 (MSB) 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
O bit mais a esquerda (MSB) representa o sinal: 0 indica número positivo e 1 indica número negativo.
Exemplo:
N = 8, -128 ≤ X ≤ 127
Positivo:
001010102 = + 4210 (bit de sinal + binário verdadeiro)
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 (bit de sinal + complemento de 2)