Bernardo Nunes Gonalves Sumrio Soma e multiplicao binria Subtrao e diviso binria Representao com sinal Representao com sinal Sinal e magnitude Complemento a base. Adio binria Regras: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 0 = 1 1 + 1 = 0 (e vai 1 para o dgito de ordem superior) 1 + 1 + 1 = 1 (e vai 1 para o dgito de ordem superior) Adio binria Ex: 101 + 011 Multiplicao binria Regras: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 0 = 0 1 x 1 = 1 Mesmo mtodo que o decimal: deslocamentos e adies. Nmero maior deve ser colocado acima do menor. Multiplicao binria Ex: 101 x 011 Subtrao binria Regras: 0 - 0 = 0 0 - 1 = 1 (e pede emprestado 1 para o dgito de ordem superior) 1 - 0 = 1 1 - 0 = 1 1 - 1 = 0 Subtrao binria Ex: 101 - 011 Diviso binria Mesmo mtodo que o decimal: deslocamentos e subtraes. Ex: Ex: Representao de nmeros com sinal Representao de nmeros com sinal Sistema sinal-magnitude Sistema sinal-magnitude Algoritmo de soma (nmeros com sinal): Sinais diferentes Encontra nmero com maior magnitude Subtrai menor do maior Subtrai menor do maior Atribui ao resultado o sinal do nmero de maior magnitude Sinais iguais Soma e atribui sinal dos operandos Ateno deve ser dada ao estouro de magnitude Algoritmo de soma (nmeros com sinal) Questes de projeto de circuitos lgicos Algoritmo do sistema sinal-magnitude: lgica complexa por conta das diversas condies (requer vrios testes) leva a aritmtica complicada em termos de hardware. Tambm a multiplicao em computadores feita por Tambm a multiplicao em computadores feita por um artifcio: para multiplicar um nmero A por n, basta somar A com A, n vezes. Por exemplo, 4 x 3 = 4 + 4 + 4. E a diviso tambm pode ser feita por subtraes sucessivas. Complemento a Base Em computadores a subtrao em binrio feita por um artifcio: o "Mtodo do Complemento a Base. Consiste em encontrar o complemento do nmero em relao a base e depois somar os nmeros. relao a base e depois somar os nmeros. Os computadores funcionam sempre na base 2, portanto o complemento a base ser complemento a dois. Representao de nmeros em complemento Complemento a diferena entre o maior algarismo possvel na base e cada algarismo do nmero. Atravs da representao em complemento a subtrao entre dois nmeros pode ser substituda pela sua soma entre dois nmeros pode ser substituda pela sua soma em complemento. Representao de nmeros positivos em complemento A representao de nmeros positivos em complemento idntica representao em sinal e magnitude. Representao de nmeros negativos em complemento a (base -1) A representao dos nmeros inteiros negativos obtida efetuando-se: (base - 1) menos cada algarismo do nmero. Fica mais fcil entender atravs de exemplos Representao de nmeros negativos em complemento a (base -1) Ex 1: Calcular o complemento a (base - 1) do nmero 297 10 Se a base 10, ento 10 - 1 = 9 e o complemento a (base -1) ser complemento a 9. Representao de nmeros negativos em complemento a (base -1) Ex 2: Calcular o complemento a (base - 1) do nmero 3A7E 16 Se a base 16, ento 16 - 1 = 15 = F e o complemento a (base -1) ser complemento a F. Caso particular: nmeros na base 2 -> complemento a (base -1) = complemento a 1 Para se obter o complemento a 1 de um nmero binrio, devemos subtrair cada algarismo de 1. Uma particularidade dos nmeros binrios que, para Uma particularidade dos nmeros binrios que, para efetuar esta operao, basta inverter todos os bits. Representao de nmeros negativos em complemento a (base - 1) Ex: Calcular o complemento a (base - 1) do nmero 0011 (estamos usando 4 dgitos). 2 Se a base 2, ento 2 - 1 = 1 e o complemento a (base -1) ser complemento a 1 (C1). Espao de representao Quantas grandezas (inteiras) diferentes podemos representar usando (n) posies em um sistema de base (b)? Resposta: b (do zero a b - 1 ) _ _ _ _ _ _ _ _ n n-1 n-2 n-3 0 3 2 1 n n Espao de representao Exemplos na base 2; quantos nmeros conseguimos representar com Com at um dgito: 0, 1 -> 2 nmeros Com at dois dgitos: 00, 01, 10, 11 -> 2 nmeros Com at trs dgitos: 000, 001, 010, 011, 100, 101, 110, 111 -> 2 nmeros 3 2 1 Representao em C1 dos nmeros binrios de 4 dgitos Repare como o espao de representao da base 2 com 4 dgitos est sendo usado na representao em C1 (note que h 2 representaes para o zero). Representao em C1 dos nmeros binrios de 4 dgitos Base 10 com 3 dgitos A representao varia de 000 a 999 (10 representaes), representando os nmeros de -499 a -1 (faixa negativa), de +1 a +499 (faixa positiva); 3 O zero pode ser representado tanto por 000 quanto por 999. Aritmtica em complemento a (base -1) Na aritmtica em complemento a (base - 1), basta somar os nmeros, sendo que um nmero negativo ser representado por seu complemento a (base 1). Aritmtica em complemento a (base -1) Ex.: Somar + 123 com - 418 (decimal). Aritmtica em complemento a (base -1) Ex.: Somar + 123 com - 418 (decimal). Verificamos que o resultado 704 (C9) um nmero negativo, isto , o complemento a 9 (base 10 -1) de 295. Aritmtica em complemento Repare que a subtrao (ou soma de um nmero positivo com um nmero negativo) se transforma, nesta representao, em uma soma em complemento, isto , a soma dos complementos do nmero positivo com o nmero negativo. nmero negativo. Portanto, uma subtrao pode ser realizada simplesmente atravs da soma dos nmeros complementados. Se o nmero positivo, mantenha-o; se o nmero negativo, complemente-o; e a, s somar. Aritmtica em complemento Dessa forma, podemos constatar que o algoritmo da soma em complemento muito mais simples que o da soma em sinal e magnitude, uma vez que no requer nenhum teste. No entanto, continuamos com duas representaes para o zero. Vamos a seguir discutir a soluo para esse problema. Representao de nmeros negativos em complemento a base A representao dos nmeros inteiros negativos em complemento a base obtida subtraindo-se da base cada algarismo do nmero. Por ex., base 10 com 3 dgitos: 1000 - x dgitos: 1000 - x Ora, seria a mesma coisa subtrair cada algarismo de (base - 1), isto , calcular o complemento a (base -1) e depois somar 1 ao resultado. Ou seja, encontramos o complemento a (base - 1) do nmero (o que facilita muito no caso dos nmeros binrios) e depois somamos 1 ao resultado. Fica mais fcil entender atravs de exemplos Complemento a base Ex 1: calcular o complemento a base do nmero 297 Queremos ento calcular o complemento a 10 (C10) desse nmero. 10 Note que o mtodo alternativo mais eficiente. Complemento a base Ex 2: calcular o complemento a base do nmero 3A7E Queremos ento calcular o complemento a 16 (C16) desse nmero. 16 Caso particular: base 2 (complemento a 2) Subtrair cada algarismo de 1 (complemento a 1) e depois somar 1 ao resultado. Assim, conforme mencionado anteriormente, para obter o C1 de um nmero binrio, basta inverter todos os bits. C1 de um nmero binrio, basta inverter todos os bits. E para obter o C2 de um nmero obtemos primeiro o C1 (invertendo os bits) e depois somamos 1 ao resultado. Caso particular: base 2 (complemento a 2) Ex: calcular o complemento a 2 (C2) de um nmero binrio 0011 com 4 dgitos: Representao em C2 dos nmeros binrios de 4 dgitos Vemos assim que em C2, no h duas representaes para o valor 0 e conseqentemente abriu-se lugar para mais uma representao. No caso, mais um nmero negativo pode ser representado. Representao em C2 dos nmeros binrios de 4 dgitos Aritmtica em complemento a base Na aritmtica em complemento a base, basta somar os nmeros, sendo que um nmero negativo ser representado por seu complemento a base. Aritmtica em complemento a base Ex.: Somar + 123 com - 418 (decimal). Aritmtica em complemento a base Ex.: Somar + 123 com - 418 (decimal). Verificamos que o resultado 705 (C10) um nmero negativo, isto , o complemento a 10 (base 10) de 295. Aritmtica em Complemento a 2 Aritmtica em Complemento a 2 Aritmtica em Complemento a 2 A adio de dois nmeros nesse sistema de representao segue duas regras: Some os dois nmeros e observe se ocorre o carry (vai 1) sobre o bit de sinal e se ocorre o carry aps o bit de sinal. Some os dois nmeros e observe se ocorre o carry (vai 1) sobre o bit de sinal e se ocorre o carry aps o bit de sinal. Se ocorrer um e somente um dos dois carry, ento houve estouro; caso contrrio o resultado da soma est dentro do campo de definio. Obs: A subtrao em complemento de 2 realizada atravs da soma de ns negativos. Aritmtica em Complemento a 2 Exemplos para n = 4 bits 0 1 0 1 0 1 1 0 Carry sobre o bit de sinal -> estouro = overflow 5 6 0 1 1 0 + _____ 1 0 1 1 0 1 0 1 0 0 1 0 + _____ 0 1 1 1 -> estouro = overflow 6 __ 11 5 2 __ 7 No houve Carry = no overflow Aritmtica em Complemento a 2 0 1 0 1 + 1 0 1 0 1 1 1 1 5 - 6 - 1 No houve Carry = no overflow Carry somente aps o bit de sinal = overflow 0 1 1 0 + 1 0 1 1 0 0 0 1 6 - 5 1 1 0 1 1 + 1 0 1 0 0 1 0 1 - 5 - 6 - 1 1 Carry sobre o bit de sinal e aps ele = no overflow Complemento a dois: adio Ex: 5 + 3 = 8 (utilizao de 4 bits) 10 10 10 Notar: quando o bit mais significativo for 1, trata-se de um nmero negativo. No caso desse exemplo seria necessrio mais um bit para representar 8 usando a representao binria em complemento de dois. 10 Representao em C2 dos nmeros binrios de 4 dgitos Complemento de dois: estouro de magnitude Em qualquer sistema de complemento de dois, existe sempre um limite para o tamanho dos nmeros a serem representados. Exemplo: quando usamos complemento de dois com Exemplo: quando usamos complemento de dois com padres de quatro bits (um para o sinal), ao valor 9 no est associado padro algum; por isso no conseguimos obter uma resposta certa para a soma 5 + 4, o resultado apareceria como -7. Adio em complemento de dois Ex: 5 + 3 = 8 (utilizao de 4 bits) 10 10 10 Utilizando-se 4 bits, o nmero 1000 em C2 o -8 , e no o 8 10 10 Complemento de dois: subtrao Somar usando representao em C2: Ex: 5 - 3 = 2 (utilizao de 4 bits) Subtrao em complemento de dois Somar usando representao em C2: Ex: 5 - 3 = 2 (utilizao de 4 bits) Notar: o bit mais significativo (decorrente do ltimo vai- um) deve ser desprezado. Aritmtica em complemento a 2: exemplos Concluses O que conclumos? Que qualquer operao aritmtica pode ser realizada em computadores apenas atravs de somas (diretas ou em complemento)! Legal, mas para que serve isso? Por enquanto, ficamos Legal, mas para que serve isso? Por enquanto, ficamos por aqui. Em circuitos lgicos veremos como essas propriedades sero teis para os engenheiros que projetam os computadores.