Aritmética Digital
Adição e subtração binárias
Revisão da adição de números decimais:
A operação é realizada da direita para a esquerda, começando do dígito menos significativo (LSD, do inglês least-significant-digit). Quando os dígitos da segunda coluna são somados o resultado é , o que gera o "vai um" (ou carry) com valor , que vai para a próxima coluna e, por fim, gera a soma .
Na adição binária, ocorrem os mesmos passos, entretanto, podem ocorrer apenas quatro casos:
Nos dois últimos casos há a presença do carry de 1 para a próxima posição.
Alguns exemplos de aplicação da adição:
Na subtração binária a situação é semelhante e também há quatro situações possíveis para lidar quando subtrair um bit de outro:
No último caso ocorre o "tomar emprestado" (borrow) da próxima coluna. Como o número à esquerda é menor do que o número à direita, o resultado é negativo. Por enquanto a representação do número negativo segue a mesma forma intuitiva em base 10: usando o sinal "-".
Um exemplo mais complicado: . Para encontrar a solução, vamos por partes, da direita para a esquerda:
- como não podemos calcular diretamente, precisamos pedir emprestado da casa anterior, à esquerda. Assim, as casas do primeiro número teriam:
- fazemos a subtração dos números mais à direita:
- fazemos a subtração dos números da próxima casa à esquerda:
- fazemos a subtração dos números da próxima casa à esquerda:
- o resultado é o número ou
O processo de tomar emprestado repete-se sempre que necessário.
Outro exemplo: . Novamente, vamos por partes, pelas casas à partir da direita:
- como o número da casa à esquerda é não podemos tomar emprestado. Então, pedimos emprestado para a outra casa. Essa, por sua vez, também é , o que mantém o impedimento. Continuamos para outra casa à esquerda até ser possível tomar emprestado e encontramos o na quarta casa. Então, reescrevemos as casas do número, em ordem: . Ainda não podemos usar esse número, porque a casa mais à direita ainda tem o valor . Continuamos pedindo emprestado ( é subtraído da quarta casa e acrescentado na terceira), resultando em: . E mais uma vez ( é subtrído da : . Assim temos. Aí conseguimos subtrair a casa mais à direita:
- fazemos a subtração do número à esquerda:
- fazemos a subtração do número à esquerda:
- como não há mais nada para subtrair, baixamos as duas casas restantes:
- o resultado é o número:
Para checar se o resultado está correto, basta somar o resultado com o segundo número, ou seja:
Alguns exemplos de aplicações da subtração:
Exercícios
Efetue as operações:
a) 10110 + 00111
b) 011,101 + 010,010
c) 10001111 + 00000001
d) 101101 - 010010
e) 10001011 - 00110101
f) 10101,1101 - 01110,0110
Representação de números com sinal
Computadores e calculadoras digitais geralmente operam com números negativos e positivos. Assim, é necessário utilizar o sinal do número ( ou ). Para isso, acrescenta-se ao número outro bit, chamado bit de sinal. A convenção é que o valor represente o sinal e o valor represente o sinal , o que é ilustrado pela figura a seguir.
Na figura, o primeiro número é 0110100 (+52). O bit mais à esquerda (bit mais significativo) tem valor 0, sendo usado para reprentar o sinal positivo. O segundo número é 1110100 (-52), tendo o bit mais significativo com valor 1 (negativo). A magnitude do número é a sua representação sem sinal. Assim, ambos os números possuem a mesma magnitude (52). Essa representação é chamada sistema sinal-magnitude para números binários com sinal.
A representação do sistema sinal-magnitude não é utilizada na prática. O sistema complemento de 2 é o mais utilizado.
Forma do complemento de 2
O complemento de 2 de um número binário é obtido em dois passos:
- Substituir cada 0 por 1 e cada 1 por 0, ou seja, inverter o número (também chamado complemento de 1)
- Adicionar o número 1 na posição do bit menos significativo (mais à direita).
Exemplo:
Qual o complemento de 2 do número 101100?
Representando números com sinal usando complemento de 2
A representação de números com sinal usando complemento de dois funciona da seguinte forma:
Se o número for positivo:
- a magnitude é representada na forma binária direta
- um bit de sinal 0 é colocado em frente ao bit mais significativo
Se o número for negativo:
- a magnitude é representada na forma do complemento de 2
- um bit de sinal 1 é colocado em frente ao bit mais significativo
A figura a seguir ilustra esse processo.
Resolvendo subtrações com complemento de 2
Para utilizar o complemento de 2 para resolver subtrações vamos utilizar, como exemplo, a expressão:. A primeira observação é que o número de algarismos dos dois números é diferente, então acrescentamos à esquerda, resultando em .
Na sequência, aplicamos o complemento de 2 no segundo número :
- complemento de 1:
- complemento de 2:
Ainda, trocamos a subtração por uma adição: .
Para concluir, retiramos o primeiro dígito mais à esquerda, resultando em:
Assim,
Dica de ouro para subtração
A maioria dos exemplos anteriores envolveu subtrair um número menor de um maior. Quando for necessário subtrair um número maior de um menor, ou seja, o número da esquerda é menor do que o da direita, a dica é: inverta a ordem dos operandos, realize a subtração e, por fim, adicione o sinal "-" de subtração. Para exemplificar, considere:
- Inverta a ordem:
- Calcule a subtração:
- Adicione o sinal "-", resultando em:
Em outras palavras, a equação é representada na forma . Lembre-se que a subtração não é comutativa.
Como fica a representação de em complemento de 2 considerando um byte (oito bits)?
Outras operações e representações:
- extensão de sinal
- negação
- adição e subtração na forma de complemento de 2
- multiplicação
- divisão
- código BCD