Aritmetica Binaria: mudanças entre as edições
(bi) |
|||
Linha 73: | Linha 73: | ||
==== Módulo e sinal==== | ==== Módulo e sinal==== | ||
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. | |||
Quantidade: -2<sup>N-1</sup> ≤ X ≤ 2<sup>N-1</sup> | Quantidade simétrica: -(2<sup>N-1</sup> - 1) ≤ X ≤ 2<sup>N-1</sup> - 1 | ||
Exemplo: | Exemplo: | ||
N = 8, -127 ≤ X ≤ 127 | |||
00101010<sub>2</sub> = + 42<sub>10</sub> | |||
'''10101010'''<sub>2</sub> = - 42<sub>10</sub> | |||
====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. | |||
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. | |||
Quantidade simétrica: -(2<sup>N-1</sup> - 1) ≤ X ≤ 2<sup>N-1</sup> - 1 | |||
Exemplo: | |||
N = 8, -127 ≤ X ≤ 127 | N = 8, -127 ≤ X ≤ 127 | ||
00101010<sub>2</sub> = + 42<sub>10</sub> | 00101010<sub>2</sub> = + 42<sub>10</sub> | ||
'''11010101'''<sub>2</sub> = - 42<sub>10</sub> | |||
====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: | |||
#Calcula-se o '''complemento 1''' do número; | |||
#Soma-se '''1''' ao complemento 1. | |||
*Despreza-se o transporte no último, caso exista. | |||
Quantidade assimétrica: -2<sup>N-1</sup> ≤ X ≤ 2<sup>N-1</sup> - 1 | |||
Exemplo: | |||
N = 8, -128 ≤ X ≤ 127 | |||
Positivo: | |||
00101010<sub>2</sub> = + 42<sub>10</sub> | |||
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 | |||
--------- | |||
'''11010110'''<sub>2</sub> (complemento 2) = - 42<sub>10</sub> |
Edição das 23h40min de 9 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 = 0 e vai 1 (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 empresta 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 positivos:
No computador o tamanho dos números que ele pode tratar é limitado pelo pelo número de bits do número: 2n.
Números negativos:
Também são limitados pelo número de bits do número, mas, precisam reservar um bit para a representação do sinal.
Existem várias formas de representar um número negativo, as mais usadas são:
- Módulo e sinal;
- Complemento de 1;
- Complemento de 2.
Módulo e sinal
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.
Quantidade simétrica: -(2N-1 - 1) ≤ X ≤ 2N-1 - 1
Exemplo:
N = 8, -127 ≤ X ≤ 127 001010102 = + 4210 101010102 = - 4210
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.
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.
Quantidade simétrica: -(2N-1 - 1) ≤ X ≤ 2N-1 - 1
Exemplo:
N = 8, -127 ≤ X ≤ 127 001010102 = + 4210 110101012 = - 4210
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:
- Calcula-se o complemento 1 do número;
- Soma-se 1 ao complemento 1.
- Despreza-se o transporte no último, 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 (complemento 2) = - 4210