Arquitetura e Organização de Computadores Sistemas de Numeração e Aritmética Computacional
Sumário Aritmética computacional
Aritmética computacional Todo sistema de computação moderno é construído de modo a ser capaz de armazenar, interpretar e manipular informações codificadas na forma binária. Assim, se torna necessário saber efetuar operações aritméticas simples considerando as informações em formato binário e suas variações. Essas operações são aquelas já conhecidas para a base numérica tradicional: Adição Subtração Multiplicação Divisão
Procedimento de Adição Tendo em vista que toda representação de valores nos computadores digitais é realizada no sistema binário, é obvio, então, que as operações aritméticas efetuadas pela máquina sejam também realizadas na mesma base de representação, a base 2. As operações de adição nas bases 2, 8 e 16 são realizadas de modo idêntico ao que estamos acostumados a usar para a base 10, exceto no que refere à quantidade de algarismos disponíveis (que, em cada base, é diferente). Esse fato acarreta diferença nos valores encontrados, mas não no modo como as operações são realizadas.
Adição de Números Binários A operação de soma de dois números em base 2 é efetuada de modo semelhante à soma decimal, levando-se em conta, apenas, que só há dois algarismos disponíveis (0 e 1). Assim: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, com "vai 1"
Adição de Números Octais e Hexadecimais Os procedimentos para adição nas bases 8 (octal) e 16 (hexadecimal) também não diferem da base 10, exceto quanto à quantidade de algarismos diferentes em cada base, conforme já mencionamos anteriormente. No caso da base octal, temos 7 algarismos disponíveis (fora o zero) e, portanto, a soma de 2 algarismos produzindo um valor superior a 7 implica a utilização do conceito de "vai 1" que consiste em um valor igual a 8 na ordem inferior). Para a base 16, o "vai 1" somente ocorre quando a soma de 2 algarismos excede o valor da base, 16.
Adição de Números Octais e Hexadecimais Ex: Soma com aritmética em base 8: A execução detalhada da soma para o Ex1 é apresentada a seguir, de modo que se possa compreender melhor o processo: 3 + 4 = 7, valor colocado na coluna, em resultado; 6 + 2 = 8 (não há algarismo na base 8 - o maior algarismo é 7). Assim, temos: 8 = 8 + 0; o 0 é colocado na coluna como resultado e o 8 é passado para a esquerda com valor 1 (é o "vai 1"), pois 8 unidades de uma ordem representam apenas 1 unidade de ordem superior - mais à esquerda); 4 + 5 +1 ("vai 1") = 10 (10=8 + 2); logo, é 2 na coluna de resultado e "vai 1" à esquerda, representando o valor 8). 3 + 1 + 1 ("vai 1") = 5, colocado na coluna resultado.
Adição de Números Octais e Hexadecimais Ex: Soma com aritmética em base 16: A execução detalhada do algoritmo de soma para o Ex1 é apresentada a seguir, de modo que se possa compreender melhor o processo: 10(A) + 11(B) = 21, que excede 5 da base 16. Logo, coloca-se 5 na linha "soma" e "vai 1" para a esquerda; 7 + 3 + 1 = 11 (algarismo B); 8 + 4 = 12 (algarismo C); 14(E) + 5 = 19, que excede de 3 a base 16. Logo, coloca-se na linha "soma" e "vai 1" para a esquerda; 10(A) + 11(B) + 1 = 22, que excede 6 da base 16 e "vai 1"; 1 + 3 + 1 = 5.
Subtração de Números Binários A subtração em base 2, na forma convencional usada também no sistema decimal (minuendo - subtraendo = diferença), é relativamente mais complicada por dispormos apenas dos algarismos 0 e 1. Assim, 0 menos 1 necessita de um "empréstimo" de um valor igual à base (no caso é 2), obtido do primeiro algarismo diferente de zero, existente à esquerda. Se estivéssemos operando na base decimal, o "empréstimo" seria de valor igual a 10.
Subtração de Números Binários A execução detalhada do algoritmo de soma para o Ex2 é apresentada a seguir, de modo que se possa compreender melhor o processo: 1 – 1 = 0 0 – 0 = 0 0 – 1 não é possível. Retira-se 1 da 5a ordem, a partir da direita, ficando 2 unidades na 4a ordem. Dessas 2 unidades, retira-se 1 para a 3a ordem (nesta 3a ordem ficam, então, 2), restando 1 nesta 4a ordem. Logo 2-1 = 1. 1 – 1 = 0 0 – 0 = 0 1 – 1 = 0 0 – 0 = 0 0 – 1 não é possível. Retira-se 1 da ordem à esquerda, que fica com zero e passa-se 2 para a direita. Logo 2 – 1 = 1 0 – 0 = 0
Subtração de números Octais e Hexadecimais Os procedimentos para realização da operação de subtração com valores representados em base 8 (octal) ou 16 (hexadecimal) são os mesmos das bases 2 ou 10, porém com a já conhecida diferença em termos de algarismos disponíveis. Ex: Subtração com valores em base 8: Ex: Subtração com valores em base 16:
Multiplicação de Números Binários O processo de multiplicação é realizado na forma usualmente efetuada para a base 10, isto é, somas sucessivas, visto que os algarismos do multiplicador somente podem ser 0 ou 1. Ex:
Multiplicação de Números Octais A tabuada para a operação de multiplicação de números Octais é mostrada a seguir:
Multiplicação de Números Hexadecimais A tabuada para a operação de multiplicação de números Hexadecimais é mostrada a seguir:
Divisão de números binários Como nas demais operações aritméticas, a divisão binária é efetuada de modo semelhante à divisão decimal, considerando-se apenas que: 0 / 1 = 0 1 / 1 = 1 e que a divisão por zero acarreta erro. Podemos efetuar uma divisão binária pelo método comum, isto é, dividendo / divisor = quociente e resto . Ou podemos realizá-la através de sucessivas subtrações, um processo mais simples de implementação em circuitos digitais.
Divisão de números binários O outro método consiste na execução da operação a seguir apresentada, o qual é o detalhamento do processo usado para executarmos essa operação no lápis e papel, na base decimal.