Aritmetica Binaria: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 106: | Linha 106: | ||
A representação mais utilizada é o '''complemento de 2'''. | A representação mais utilizada é o '''complemento de 2'''. | ||
Subtrair | |||
====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. | 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. | ||
Linha 171: | Linha 171: | ||
+1101 | +1101 | ||
----- | ----- | ||
(1)0001 (bit desprezado) | (1)0001 (bit de ''carry'' externo desprezado) |
Edição das 14h28min 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
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 (produtos parciais) + 1010 -------- 111010 (produto)
A maioria dos computadores digitais pode somar apenas dois números binários por vez. Por isto, os produtos parciais não podem ser somados ao mesmo tempo. Em vez disto, são somados dois de cada vez.
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
Exercícios:
- Efetue a multiplicação dos seguintes pares de números binários:
- 1001 * 1011
- 10110 * 00111
- 011101 * 010010
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. Subtrair
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)
O complemento de 2 de um número negativo, será o seu simétrico positivo:
Exemplo:
110101102 = - 4210 (negativo) Passo 1: calcula-se o complemento 1 do número 00101001 (complemento 1) Passo 2: soma-se 1 ao complemento 1 00101001 + 1 --------- 001010102 = 4210 (simétrico positivo)
Aritmética com complemento de 2
A subtração pode ser implementada como soma do complemento de 2.
Exemplo:
Operação: + 410 - 310 (representados em binários de 4 bits) 410 = 01002 310 = 00112 -310 = 1100 + 1 = 11012 (complemento de 1 + 1 = complemento de 2) Realizando a soma do positivo com o negativo: 0100 +1101 ----- (1)0001 (bit de carry externo desprezado)