Vous êtes sur la page 1sur 14

TEORIA 2

Operaes Aritmticas Sobre Nmeros em Base Binria e Hexadecimal

2. Operaes Aritmticas Sobre Nmeros em Base Binria e Hexadecimal: Muitas das operaes de transformao de dados executada por equipamentos munidos de sistemas de lgica digital so realizadas por meio de operaes aritmticas ou por meio de operaes lgicas entre palavras binrias. As operaes aritmticas em sistemas digitais so geralmente feitas em binrio. Um sistema numrico pode ser usado para realizar duas operaes bsicas: adio e subtrao. Mas pelo uso de adio e subtrao, podemos ento realizar todas as demais operaes aritmticas como multiplicaes, divises, e qualquer outra operao numrica. Neste captulo, estudaremos as operaes aritmticas com nmeros em base binria (adio, subtrao, multiplicao e diviso) examinando-as usando a aritmtica decimal como um guia, pois a aritmtica binria realizada de forma semelhante aritmtica decimal. Tambm as mesmas operaes entre nmeros em hexadecimal. Para compreender bem esse assunto, voc precisa conhecer bem o assunto sistemas de numerao. Embora no precisemos tornar-nos peritos em operaes aritmticas sobre nmeros em base binria e hexadecimal, mesmo porque no precisaremos ficar fazendo todas essas contas manualmente, pois existem calculadoras e programas de computador que realizam tais clculos poupando-nos de fazer este trabalho, voc deve sim ser capaz, sem levar muito tempo, de efetuar essas operaes manualmente utilizando um pedao de papel e um lpis, at mesmo porque voc o especialista que deve conhecer exatamente como a coisa funciona, devendo ter compreenso de circuitos lgicos e aritmticos, tais como somadores e subtratores e, num estgio mais avanado, de uma Unidade Lgica Aritmtica (ULA) completa, tais como as que integram os microcontroladores e microprocessadores. O seu grau de embasamento terico de certo estar sempre refletido na qualidade dos programas que voc ir criar.

2.1. Adio Sobre Nmeros em Base Binria: A operao de adio de nmeros binrios idntica do sistema decimal. Se dois nmeros decimais 56719 e 31863 so adicionados, a soma 88582 obtida. Voc pode analisar os detalhes desta operao da seguinte maneira: Transporte Parcela 1 Parcela 2 Soma
SENAI

5 + 3 8

6 1 8

7 8 5

1 6 8

9 3 2

Somando a primeira coluna, nmeros decimais 9 e 3, resulta o dgito 2 com um transporte de 1. O transporte ento somado prxima coluna. Adicionado segunda coluna, (1+1+6), resulta o nmero 8, sem transporte. Este processo continua at que todas a colunas tenham sido somadas (incluindo os transportes). A soma representa o valor numrico das parcelas. Rua Jaguar Mirim, 71 - Vila Leopoldina 15
CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

E-Mail: ahp106@sp.senai.br

Quando voc soma dois nmeros binrios, voc realiza a mesma operao, com a ressalva de que o sistema binrio, como j sabemos, possui apenas dois algarismos: 0 e 1. Para a realizao da soma entre dois nmeros binrios (A e B), sendo que cada nmero tem o comprimento de apenas um digito, existem as seguintes condies, mostradas na tabela a seguir:
OPERANDOS

0 0 0 1 0 1 1 0

0+0= 0+1= 1+0= 1+1=

Na regra 4 temos a condio 1 + 1 = 10 (l-se um zero e no dez) est exemplificada a regra de transporte na qual 1 transportado para a coluna seguinte, ou seja, "vai um". A figura ao lado resume as quatro regras de adio com nmeros binrios. Para ilustrar o processo de adio binria, vamos somar dois nmeros binrios de quatro bits, ou seja, 1101 a 1110:

Na primeira coluna direita, somamos as parcelas 1 mais 0, o que resulta em 1 com um transporte de 0 desta primeira para a segunda coluna. Isto concorda com a regra 3. O que realizamos ento nesta primeira coluna da direita, foi uma soma simples de dois Parcela 1 1 1 0 1 bits (A e B), mas repare que da segunda coluna em diante existe o transporte recebido da soma da + Parcela 2 1 1 1 0 coluna anterior, ento podemos dizer que se trata de fato de efetuarmos uma soma de trs bits (A, B Soma 1 1 0 1 1 e Transporte Recebido). Se o transporte recebido for de valor zero, ele pode simplesmente ser ignorado (se o transporte de valor zero costuma-se dizer que no h transporte), mas se o transporte for de valor um, ele deveras vai afetar o resultado da soma desta coluna podendo at mesmo afetar o valor do transporte para a prxima coluna; Transporte
1 1 0 1

Apesar de ser uma soma de trs bits (A, B e Transporte Recebido), podemos racionalizar o processo dois a dois, ou seja: Somamos as parcelar e obtemos um resultado parcial e um transporte a enviar, da ento; Somamos o resultado parcial ao transporte recebido e obtemos um resultado final e um novo transporte a enviar, e; Como transporte a enviar prevalece aquele de maior valor dentre os dois transportes gerados. Assim podemos prosseguir descrevendo o processo ilustrado, ainda apoiado simplesmente nas quatro regras vistas: Na segunda coluna temos 0 mais 1 (parcelas), o que resulta em 1 sem transporte (ou com transporte de 0) da segunda para a terceira coluna (regra 3).
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

16

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

A este resultado, o transporte que veio da primeira coluna somado. Assim 0 mais 1 resulta 1 e o transporte para a terceira coluna continua sendo 0. Na terceira coluna temos 1 mais 1 (parcelas), o que resulta em 0 com o transporte de 1 para a quarta coluna (aplicou-se aqui a regra 4). A este resultado o transporte que veio da segunda coluna somado. Assim temos 0 mais 0 que igual a 0, ou seja, o resultado desta coluna continua sendo 0, assim como tambm no afeta o transporte para a quarta coluna, que j havia sido anteriormente definido de 1. Na quarta coluna temos 1 mais 1 (parcelas) resulta em 0 com o transporte de 1 para a quinta coluna (regra 4 novamente). A este resultado o transporte que veio da terceira coluna somado. Assim temos 0 mais 1 igual a 1, ou seja, mudou o resultado desta coluna mas no afeta o transporte para a quinta coluna, que j foi anteriormente definido de 1. Na quinta coluna no h parcelas, h somente o transporte recebido da quarta coluna e nada mais a ser somado. Assim desce o 1 do transporte como resultado desta coluna. O processo terminou e 11012 + 11102 = 110112

2.2. Adio Sobre Nmeros em Base Hexadecimal Esta operao segue as mesmas regras usadas na adio binria e decimal, devendo-se apenas tomar os devidos cuidados para no confundir a soma hexadecimal (16 smbolos), com a decimal (10 smbolos). No sistema decimal, (9 + 2 = 11), mas no sistema hexadecimal, (9 + 2 = B). Uma regra a ser seguida a seguinte: ao serem somados dois algarismos de base hexadecimal, se o resultado for maior que 1510, subtraia 1610 deste valor, colocando o resto como resultado e anotando a ocorrncia de vai um na prxima coluna. Exemplos: 4B2D16 + 594316 = Vai-Um Parcela 1 Parcela 2 Soma
1 1

4 B 5 9 A 4

2 4 7

D 3 0

Na primeira coluna direita temos (D + 3)16, das parcelas, ou seja, (13 + 3)10, o que resulta em 1610. Como este resultado maior que 1510, subtramos dele 1610, o que resulta em 0 e vai 1 para a segunda coluna. Na segunda coluna temos 1 (do vem 1), + 2 e + 4 (das parcelas), o que resulta em 7.

SENAI

Rua Jaguar Mirim, 71 - Vila Leopoldina

17

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Na terceira coluna temos (B + 9)16 , das parcelas, ou seja (11 + 9)10, o que resulta em 2010. Como este resultado maior que 1510, subtramos 1610, o que resulta em 4 e vai 1 para a quarta coluna. Na quarta coluna temos 1 (do vem 1), + 4 e + 5 (parcelas), o que resulta em 1010, ou seja A16. 2.3. Subtrao Sobre Nmeros Inteiros A subtrao binria realizada exatamente como subtrao decimal. Portanto, antes de realizarmos a subtrao binria vamos revisar a subtrao decimal. Voc sabe que se 4783 subtrado de 9514, a diferena 4731 obtida. Emprstimo Atualizao Minuendo Subtraendo Diferena 8 9 4 4
1 1

Comeamos na primeira coluna da direita: Nesta primeira coluna, como o algarismo 4 (minuendo) maior que 3 (subtraendo) no necessrio nenhum emprstimo (emprstimo zero) ento simplesmente fazemos a operao 4 3 que resulta em 1.

4 5 7 7 1 8 3 4 3 1

Na segunda coluna, como o algarismo 1 (minuendo) menor que 8 (subtraendo), sim necessrio um emprstimo. No sistema decimal, o dgito emprestado tem sempre o valor de 10. Portanto, o dgito do minuendo que 1 deve ser somado ao 10 do emprstimo, o que resulta em 11. Deste resultado onze, subtramos o subtraendo 8, resultando finalmente em 3. Na terceira coluna o algarismo do minuendo agora 4 e no 5, pois foi concedido um emprstimo e como este algarismo 4 (minuendo) menor do que 7 (subtraendo), realmente necessrio um emprstimo. Portanto o dgito do minuendo que 4 deve ser somado ao 10 do emprstimo, o que resulta em 14. Deste resultado 14 subtramos o subtraendo 7, resultando finalmente em 7. Na quarta coluna o algarismo do minuendo agora 8 e no 9 pois foi concedido um emprstimo e como este algarismo 8 (minuendo) maior do que 4 (subtraendo), no necessrio nenhum emprstimo (emprstimo zero) ento simplesmente fazemos a operao 8 4 que resulta em 4. O processo terminou e 951410 478310 = 473110 Quando se subtrai um nmero binrio de outro, voc usa o mesmo mtodo descrito para subtrao decimal, com a diferena de que toda vez que h a necessidade de um emprstimo, 1 emprestado de um dgito de ordem superior, o emprstimo igual, em valor, base do sistema numrico. Portanto, um emprstimo no sistema numrico decimal igual a 10, enquanto um emprstimo no sistema numrico binrio igual a 2, mas lembre-se que o binrio 10 igual ao decimal 2.

SENAI

Rua Jaguar Mirim, 71 - Vila Leopoldina

18

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Para facilitar, podemos tambm colocar isso em forma de regras, como fizemos com a adio. As regras da subtrao binria so:
OPERANDOS
MPR

DIF

0-0= 0-1=

0 1

0 1

Observando a regra 2 ( 0 1 = 1 1 ) algum poderia dizer que isso um absurdo, pois passando os nmeros para o sistema decimal teramos que admitir que 0 1 = 3.

Entretanto no assim que se interpreta o valor do resultado desta regra, pois a operao de subtrao entre 1-0= 0 1 nmeros binrios exige o contexto de um sistema sinalizado para representar os resultados desta operao, os 1-1= 0 0 quais podem ser tanto positivos quanto negativos e os sinais precisam ficar armazenados nos computador da mesma forma que os nmeros, ou seja, na forma de bits. De fato basta apenas um bit extra para armazenar a representao dos sinais, pois os sinais so apenas dois: positivo (+) e negativo (-). Vamos ver um pouco sobre sistema sinalizado e depois voltamos questo da subtrao. 2.3.1. Representao de Nmeros Inteiros Existem vrias padres de representao para nmeros binrios em sistema sinalizado (mdulo e sinal; complemento de 1; complemento de 2; excesso de 2 elevado a (N-1) ), sendo que uma caracterstica comum entre a maioria destes padres que o bit mais a esquerda representa o sinal, correspondendo o 0 ao sinal + e o 1 ao sinal - , e os demais bits representam o nmero. O padro de representao de nmeros binrios em sistema sinalizado que se tornou mais popular e mais utilizado o formato do complemento de dois. Esta forma de representao e os seus procedimentos operacionais (a grande maioria das Unidades Centrais de Processamento (CPU) no implementam subtrao binria em seus circuitos lgicos. A subtrao, nesse caso, obtida por um mtodo que faz a soma do minuendo com o complemento de dois do subtraendo) sero estudados em detalhes no captulo reservado ao assunto de Circuitos Somadores e Circuitos Subtratores. Se o nmero ou no negativo depende do bit mais significativo (o bit mais esquerda) da palavra binria. Este o "bit de sinal". Se o nmero sinalizado estiver com o bit de sinal em nvel 1, ento um nmero negativo. Se o bit de sinal estiver zerado, ento um nmero positivo. Portanto, fcil reconhecer um nmero sinalizado. Nessas representaes de nmeros binrios em sistema sinalizado tambm se considera que temos um nmero limitado de dgitos para cada dado numrico. Esse nmero de dgitos disponvel representado por N. Para um computador os nmeros so essencialmente diferentes porque o bloco de dados (ou palavra binria) utilizado de tamanho definido e finito. Assim, por exemplo, um byte no consegue guardar um nmero maior do que 255. Se, numa instruo de byte, for adicionado 1 a 255, o nmero se torna zero. Na prtica, ocorrendo esta situao, a instruo faz com que o bit de transporte (carry em ingls) seja colocado em valor 1 para mostrar que o novo nmero grande demais para o tamanho de dados que foi utilizado.
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

19

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Fica mais fcil entender quando se observa os bits:


Binrio

Bit de Transporte + 1 Estouro (Carry)

Decimal b7 b6 b5 b4 b3 b2 b1 b0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 255 1 256

Byte

No que foi visto na regra 2 tivemos um resultado da subtrao de 0 1, que expresso em dois dgitos, ou seja 11. Assim sendo temos um digito binrio para sinal e o outro digito binrio valor da diferena. Como o bit de sinal 1 temos representado um nmero negativo, ou seja -1. Mas cuidado, se voc realizar a operao de 0 1 em binrio numa calculadora cientfica a resposta pode sair por exemplo 1111111111, pois ela opera com dez dgitos: um digito para representar o sinal e nove dgitos para representar o valor. Como o tamanho dos dados finito, pode-se considerar os dados como tendo dois valores simultneos, um positivo e outro negativo, dependendo se estamos no contexto de um sistema sinalizado ou no-sinalizado. Considere o diagrama ao lado onde temos a representao de um sistema sinalizado de quatro bits, sendo um bit de sinal e trs bits de valor. Num sistema binrio de trs bits podemos representar valores de 0 a 7. Entretanto ao acrescentarmos o quarto bit (bit de sinal), continuamos representando valores de 0 a 7 e mais os valores de -8 a -1, totalizando dezesseis valores representados. Note que, por exemplo, o binrio 1001 , num sistema sinalizado de 4 bits representa o valor -7, no entanto se o sistema fosse no-sinalizado ele representaria o valor 9. Quando trabalhamos com Words de 16 bits podemos obter valores com nmeros sem sinal que vo de 0 at 65535 (ou de 0000 a FFFF em hexadecimal). Se trabalharmos com nmeros com sinal, metade do conjunto dos valores ser positiva e a outra metade ser negativa, tendo se assim a faixa de -32768 at +32767.
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

20

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Creio que neste ponto j temos uma boa noo de como representar valores numricos sinalizados no sistema de base binria. Podemos agora retornar ao estudo da tcnica da operao aritmtica de subtrao de nmeros binrios. 2.4. Subtrao Sobre Nmeros em Base Binria
OPERANDOS EMPR DIF

0-0= 0-1= 1-0= 1-1=

0 1 0 0

0 1 1 0

Observe na regra 2 que na condio 0 - 1 = 11 est exemplificada a regra de transporte na qual 1 emprestado da coluna seguinte. Veja agora um exemplo com "empresta um, no caso temos 1001012 - 10102:

A linha "emprstimo" nos mostra o valor de cada dgito do minuendo depois da ocorrncia de cada transporte, que pode ser de 0 (sem emprstimo) ou de 1 (com emprstimo). Repare que o subtraendo 1010 recebeu dois dgitos 0 esquerda para ficar no padro de tamanho de 6 dgitos, que o mesmo tamanho do minuendo. Na primeira coluna temos 1 0 , que resulta em 1 com emprstimo de 0 (ou melhor, sem necessidade de emprstimo). Isso est de acordo com a regra 3. Emprstimo Atualizao Minuendo Subtraendo Diferena 0 1 0 0 1 0 0 1 0 1 1
1 1

0 1 0 0 0 1 1 1 0 1

Na segunda coluna temos 0 1, e como 0 menor que 1, esta operao s pode ser efetuada aps o emprstimo de 1 da terceira coluna. A terceira coluna tem o valor 1, portanto ela pode conceder o emprstimo. Aps o emprstimo a terceira coluna passa a valer 0 e a segunda coluna passa a valer 1 0 (lembre-se que o binrio 1 0 o mesmo que 2 em decimal). Por isso vale a regra 2 que diz que 0 1 igual a 1 e empresta 1. Na terceira coluna o valor atual do minuendo 0, assim temos 0 0. Aplicamos ento a regra 1, ou seja 0 0 igual a zero e no h emprstimo (emprstimo de 0). Na quarta coluna temos 0 1, e como 0 menor que 1, esta operao s pode ser feita aps o emprstimo de 1 da quinta coluna. No entanto a quinta coluna tem o valor 0 e deste modo ela no pode conceder o emprstimo. Assim vamos buscar o emprstimo na prxima coluna esquerda (sexta coluna) a qual tem valor 1 e portanto pode conceder o emprstimo. Aps o emprstimo a sexta coluna passa a valer 0; j a quinta coluna que inicialmente vale 0, por um timo passa a valer 1 0 pois ela serve de intermediria no emprstimo entre as quarta e sexta colunas, mas por fim, concluda a transao do emprstimo, ela passa a valer apenas 1; por sua vez a quarta coluna passa a valer 1 0 (lembre-se que o binrio 1 0 o mesmo que 2 em decimal). Por isso vale a regra 2 que diz que 0 1 igual a 1 e empresta 1.
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

21

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Na quinta coluna o valor atual do minuendo 1, assim temos 1 0, o que resulta em 1 com emprstimo de 0 (ou melhor, sem necessidade de emprstimo). Isso est de acordo com a regra 3. Na sexta coluna o valor atual do minuendo 0, assim temos 0 0, o que resulta em 0 com emprstimo de 0 (ou melhor, sem necessidade de emprstimo). Isso est de acordo com a regra 1. Assim, 1001012 - 0010102 = 0110112 Repare que a diferena (011011) tem apenas 5 algarismos significativos (o 0 a esquerda no algarismos significativo). Neste exemplo adotamos o padro de comprimento de nmero binrio de 6 dgitos. Como na adio binria, os microprocessadores geralmente realizam subtraes em grupos de nmeros de 8 bits. Ento considere e resolva o prximo exemplo: Subtraia: Emprstimo Atualizao 101110102 de 111011102 Minuendo Subtraendo Diferena 2.5. Mtodo da Subtrao pela SOMA DO COMPLEMENTO A subtrao de nmeros binrios pode tambm ser efetuada pela soma do complemento. Esse mtodo possui trs variaes: Soma Simples do Complemento; Soma do Complemento de 1; Soma do Complemento de 2. A implementao do algoritmo da subtrao em computadores de certo modo uma tarefa complexa. Nos computadores a subtrao em binrio feita por um artifcio que consiste na utilizao do chamado "Mtodo do Complemento de Dois". Assim, a subtrao de nmeros binrios efetuada por um mtodo que realiza a soma do complemento de dois do valor do subtraendo ao valor do minuendo. O que h de interessante nisso que o que deveria ser uma operao de subtrao acaba se transformando em uma operao de adio. Isto faz com que o circuito lgico da Unidade Lgica e Aritmtica (bloco lgico responsvel pela efetuao de todas as operaes lgicas e aritmticas em um processador), se torne mais simples, pois o mesmo circuito somador binrio pode ser usado tanto para a implementao da operao aritmtica de adio quanto para a operao aritmtica de subtrao.
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

1 1

1 0

1 1

0 1

1 1

1 0

1 1

0 0

22

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Considere tambm o fato de que trabalhar com a operao aritmtica de subtrao de forma plena requer que se admita trabalhar com um sistema numrico sinalizado (+ / -) e com um nmero finito e definido de dgitos. Este sistema de representao (Complemento de 2) utiliza o bit mais esquerda para a representao do sinal, correspondendo o 0 ao sinal + e o 1 ao sinal -. Para os nmeros positivos, os (N - 1) bits da direita representam a magnitude ou mdulo. O complemento simtrico de um nmero (Complemento de 2) obtido em dois passos: Obtm-se o complemento de todos os bits do nmero positivo (trocando 0 por 1 e vice-versa) incluindo o bit de sinal, isto , executa-se o complemento de 1; Ao resultado obtido no primeiro passo, soma-se 1, desprezando o ltimo transporte, se houver. VALOR SINAL DECIMAL b7 b6 b5 b4 b3 b2 b1 b0 10 -11 -11 1 -10 2.5.1. Faixa de Valores Representveis: Pelo fato de estarmos trabalhando com limitao de 8 bits, a faixa de representao de possveis valores :
( 2 N1 ) X +( 2 N1 1)

No exemplo ao lado temos a representao do complemento de 2 dos nmeros 10 com limitao de 8 bits (N = 8):

0 1 1 + 1

0 1 1 1

0 1 1 1

0 1 1 1

1 0 0 0

0 1 1 1

1 0 0 1

0 1 1 1 0

1 Passo Complemento de 1 (Inverte Todos os Bits) 2 Passo Complemento de 2 (Soma 1)

Ou seja, para oito bits a faixa : 128 X +127 Se fosse o caso de tratar-se de um sistema limitado a 16 bits: 32768 X 32767 Para 32 bits a faixa seria: 2.147.483. 648 X 2.147.483. 648 Uma vantagem deste tipo de representao e que temos uma nica representao para o nmero 0. Veja o exemplo com limitao de 8 bits:
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

23

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

VALOR DECIMAL 0 -1 -1 1 -0

CARRY
(ESTOURO OU VAI 1)

SINAL b7 0 b6 0 1 1 0 b5 0 1 1 0 b4 0 1 1 0 b3 0 1 1 0 b2 0 1 1 0 b1 0 1 1 0 b0 0 1 1 1 0

1 Passo Complemento de 1 (Inverte Todos os Bits) 0 0 1 1 1 + 0 2 Passo Complemento de 2 (Soma 1)

Estouro Desprezado

Logo 0 e - 0 tem a mesma representao.

Ento o artifcio utilizado pelo o mtodo de subtrao pela soma do complemento de 2, consiste nada mais dada menos do se efetuar X + (-Y) ao invs de se efetuar diretamente X-Y. Ao utiliz-lo seguimos a seguinte seqncia: Determina-se o complemento de 1 do subtraendo, invertendo-se todos os bits; Soma-se 1 ao complemento de 1 do subtraendo a fim de obter o complemento de 2; Soma-se o minuendo com o complemento de 2 do subtraendo; Ignora-se o estouro (vai 1) do resultado da soma. Exemplo:
DESCRIO b7 b6 b5 b4
SINAL

b3

b2

b1

b0

Efetuar a seguinte subtrao: 01102, 11012 considerando estar trabalhando em um Sistema de 4 bits com visualizao de 8 BITS:

SUBTRAENDO COMPLEMENTO DE 1 DO SUBTRAENDO +1 COMPLEMENTO DE 2 DO SUBTRAENDO MINUENDO RESULTADO FINAL

0 1 + = + 1 0 0

0 1

0 1

0 1

0 1

1 0

1 0

0 1 1

1 0 0

1 0 0

1 0 0

1 1 0

0 1 1

1 0 1

0 1 1

Apesar de estarmos visualizando oito bits, apenas cinco bits nos interessam: os quatro primeiros, que o mdulo do valor e o quinto bit que o bit de sinal. Neste caso o bit de sinal pode ser ignorado, pois seu valor zero indica que o valor positivo, o resultado de 11012 - 01102 = 01112. Este mtodo o mesmo empregado pelas calculadoras cientficas quando estas esto efetuando subtrao de nmeros binrios. Repare o bit de sinal em relao ao
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

24

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

observado nas calculadoras, pois estas ao fazerem o complemento de 1 do subtraendo, invertem todos os 10 ou 12 bits correspondentes capacidade plena de dgitos do seu registrador acumulador (Display) inclusive os bits 0 esquerda (os quais no so visveis ao se digitar o valor do subtraendo, mas que existem virtualmente). Outro exemplo, agora com minuendo < subtraendo (neste caso a diferena dever resultar em um nmero negativo): Efetuar a seguinte subtrao: 01102 - 11012 , que corresponde a (610 - 1310 = -710) com condies de limitao a 4 bits e de visualizao a 8 bits:
DESCRIO
SUBTRAENDO COMPLEMENTO DE 1 DO SUBTRAENDO +1 COMPLEMENTO DE 2 DO SUBTRAENDO MINUENDO RESULTADO FINAL

b7

b6

b5

b4
SINAL

b3

b2

b1

b0

0 1 + = + 1 0 1

0 1

0 1

0 1

1 0

1 0

0 1

1 0 1

1 0 1

1 0 1

1 0 1

0 0 1

0 1 0

1 1 0

1 0 1

Neste caso o bit de sinal 1 , indicando que o nmero negativo, podendo ser interpretado pela tabela ao lado:

Bit de Valor Sinal Decimal 1 0001 1 0010 1 0011 1 0100 1 0101 1 0110 1 0111 1 1000 1 1001 1 1010 1 1011 1 1100 1 1101 1 1110 1 1111 0 0000

Binrio -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0

2.6. Subtrao Sobre Nmeros Hexadecimais Na subtrao hexadecimal, procedemos da mesma forma como fazemos na subtrao decimal, considerando-se, claro, que o sistema hexadecimal tem 16 smbolos. Sempre que no pudermos subtrair um nmero de outro, ou seja, quando o minuendo for menor que o subtraendo, emprestamos 1 do algarismo vizinho esquerda.
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

25

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Este 1 emprestado tem valor de 16, assim como em decimal este 1 emprestado teria valor de 10. Somando-se o emprstimo ao minuendo e do resultado disto subtrado o subtraendo, obtemos o resultado final. Um exemplo: 8A8 - 1FA =
EMPRSTIMO ATUALIZAO MINUENDO SUBTRAENDO DIFERENA

7 8 1 6

1 9 A F A

1 8 A E

Na primeira coluna temos (8 A)16 , ou seja (8 -10)10 , como o nmero 8 menor que A, emprestamos 1 do vizinho que passa a valer 9. Agora temos ento (18 A)16, ou seja (24 10)10, o que resulta em 1410, ou seja E16. Na segunda coluna temos atualmente (9 F)16, ou seja, (9 - 15)10, como 9 menor que F, emprestamos 1 do vizinho, que passa a valer 7. Agora temos ento (19 F)16, ou seja, (25 15)10, o que resulta em 1010, ou seja A16. Por fim na terceira coluna temos (7 - 1 = 6).

2.7. Multiplicao Sobre Nmeros Binrios


OPERANDOS

PROD

0x0= 0x1= 1x0= 1x1=

0 0 0 1

A multiplicao binria segue os mesmos princpios gerais da multiplicao decimal. Entretanto, com apenas dois possveis bits multiplicadores (1 ou 0), por isso a multiplicao binria um processo muito simples. A figura ao lado lista as regras da multiplicao binria. A seguir utilizaremos estas regras para multiplicar 10012 por 11012 .

Multiplique o multiplicando por cada bit do multiplicador, a comear do bit menos significativo deste, a fim de obter com isso, tantos produtos parciais quantos forem o nmero de bits do multiplicador. Cada resultado parcial deve ser disposto em deslocamento de 1 bit em relao ao alinhamento do produto parcial anterior. Ao final somamos todos os resultados parciais, obtendo assim o resultado da multiplicao. Primeiro multiplique o multiplicando (1001) pelo bit menos significativo do multiplicador que 1 e coloque o primeiro produto parcial de tal forma que este fique exatamente sob o multiplicador. Observe que o primeiro produto parcial idntico ao prprio multiplicando (1001).

SENAI

Rua Jaguar Mirim, 71 - Vila Leopoldina

26

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

MULTIPLICANDO MULTIPLICADOR 1 PRODUTO PARCIAL 2 PRODUTO PARCIAL 3 PRODUTO PARCIAL 4 PRODUTO PARCIAL PRODUTO FINAL

x 0 0 0 1

1 1

1 0 1

1 1 1 0 0 1 0

0 1 0 0 1 1

0 0 0 0

1 1 1

O Bit mais a direita sempre o Bit Menos Significativo

Em seguida multiplique o multiplicando pelo prximo bit do multiplicador que 0 e disponha o segundo produto parcial de tal forma que este fique 1 bit deslocado esquerda do primeiro produto parcial. O segundo produto parcial resulta em zero (0000). Uma vez que o sistema numrico binrio contm apenas 1 e 0, cada produto parcial ser sempre ou igual ao prprio multiplicando ou igual a zero, e isso s depende de se o correspondente bit do multiplicador 1 ou 0. Com isto, uma vez que o prximo bit do multiplicador 1, podemos obter o terceiro produto parcial simplesmente copiando o multiplicando, colocando o de tal forma que este fique 1 bit deslocado a esquerda do segundo produto parcial. Agora obtenha o quarto e ltimo produto parcial, copiando mais uma vez o multiplicando, dispondo-o de tal forma que fique 1 bit deslocado a esquerda do terceiro produto parcial. Lembre-se, assim como na multiplicao decimal, observe atentamente qualquer zero, colocando um zero no produto para posio correspondente. Podemos proceder a uma verificao do resultado da operao de multiplicao binria pela converso dos nmeros binrios para decimal: 10012 11012 11101012 910 1310 11710

Observe que a multiplicao binria um processo de deslocamento e soma. Para cada bit 1 no multiplicador, comeando com o bit menos significativo (LSB Less Significant Bit), voc copia o multiplicando, dispondo-o sempre uma posio deslocado a esquerda. No entanto, nos sistemas de computao digital a multiplicao tambm efetuada por meio do artifcio de uma sucesso de somas: para multiplicar um nmero A por n, por exemplo, basta somar A com A, n vezes. Por exemplo, 5 x 4 = 5 + 5 + 5 + 5. Do mesmo modo, a diviso tambm pode ser efetuada por meio de subtraes sucessivas! Tais fatos nos levam a seguinte concluso:

SENAI

Rua Jaguar Mirim, 71 - Vila Leopoldina

27

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Qualquer operao aritmtica pode ser realizada em computadores apenas atravs de somas diretas ou atravs da soma em complemento! 2.8. Diviso Sobre Nmeros Binrios: A diviso binria um processo bastante simples uma vez que a base dois ao invs de dez. Como exemplo, vamos dividir 1000112 por 1012 . Usando diviso longa, examinamos o dividendo comeando com o bit mais significativo (MSB Most Significant Bit) e determinamos o nmero de bits requerido para igualar ou exceder o valor do divisor. Quando encontramos este valor, colocamos 1 no quociente e subtramos o divisor do valor do dividendo selecionado. Ento transporte o prximo bit (bit imediatamente menos significativo) do dividendo para a posio menos significativa do resto atual. Se for possvel subtrair o divisor do resto atual, ento efetuamos esta subtrao e anotamos 1 no quociente, caso contrrio, transporte o prximo bit (bit imediatamente menos significativo) do dividendo para o resto atual e anotamos 0 no quociente.

DIVIDENDO

1 -

0 1 -

0 0 1 1 -

0 1 1 0 1 1

1 1 1 0 0

1 0 1 1 1 1
QUOCIENTE

DIVISOR

RESTO

1 1 0

Repita a instruo do pargrafo acima at que todos os bits do dividendo tenham sido considerados. Ento expresse qualquer resto como uma frao do divisor. Voc pode verificar a resposta convertendo os nmeros binrios para decimal. Execute a diviso:

1 0

1 1 0 0

A.L.Lenz
SENAI Rua Jaguar Mirim, 71 - Vila Leopoldina

28

Servio Nacional de Aprendizagem Industrial

ESCOLA SENAI MARIANO FERRAZ" NAI

CEP: 05311-020 - So Paulo - SP Fone/Fax: (011)3641-0024 E-Mail: ahp106@sp.senai.br

Vous aimerez peut-être aussi