Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas de Numerao
O nmero um conceito abstracto que representa a ideia de quantidade. Pode ter uma representao simblica, como no sistema romano, ou ter um peso de acordo com a posio que ocupa, como no sistema rabe, que usamos normalmente. A necessidade de contar e registar quantidades de objectos foi sentida pelo homem desde os primrdios da civilizao. Um sistema de numerao o conjunto de smbolos utilizados para a representao de quantidades e as regras que definem a forma de representao. O sistema de numerao mais simples o de base unria ou seja cada objecto representado por um smbolo. O termo smbolo designa um elemento representativo que est no lugar de algo que representado por um objecto e determinado pela quantidade ou pela qualidade. Exemplos: 5 objectos podem ser representados por /////. Associar quantidades de 10 objectos e usar o smbolo * para as representar. Quantidades de 100 podem ser representadas por + e assim sucessivamente. Assim, 324 objectos podem ser representados por +++**////.
Desde que se comeou a registar informaes sobre quantidades, foram criados diversos mtodos de representar as quantidades. O mtodo ao qual estamos familiarizados usa um sistema de numerao posicional. Isso significa que o valor de cada smbolo determinado de acordo com a sua posio no nmero. Um sistema de numerao determinado fundamentalmente pela BASE, que indica a quantidade de smbolos e o valor de cada smbolo. Do ponto de vista numrico, o homem usa o sistema decimal. Por exemplo, no sistema decimal (base 10), no nmero 125 o algarismo 1 representa 100 (uma centena ou 102), o 2 representa 20 (duas dezenas ou 2x101) e o 5 representa o 5 (5 unidades ou 5x100). Assim, na nossa notao: 125 = 1x102 + 2x101 + 5x100 A base de um sistema a quantidade de algarismos disponvel na representao. Hoje a base 10 a mais utilizada, embora no seja a nica. No comrcio pedimos uma dzia de rosas (base 12) e tambm marcamos o tempo em minutos e segundos (base 60).
Os computadores utilizam a base 2 (sistema binrio) e os programadores, por facilidade, usam em geral uma base que seja uma potncia de 2, tal como 24 (base 16 ou sistema hexadecimal) ou eventualmente 23 (base 8 ou sistema octal).
Significncia Posicional
Um nmero representado por uma sequncia de dgitos onde a posio de cada dgito tem um determinado peso associado. Por exemplo, o valor N de um nmero decimal de 4 dgitos A3A2A1A0 dado por:
N = A3 10 3 + A2 10 2 + A1 101 + A0 10 0
Cada dgito Ai tem um peso 10i. Sendo assim, o valor 6851 pode ser escrito da seguinte maneira:
O ponto decimal utilizado para permitir, na representao do nmero, potncias positivas e negativas de 10. O nmero A1A0,A-1A-2 tem o valor:
N = A1 101 + A0 10 0 + A1 10 1 + A2 10 2
N = 3 101 + 4 10 0 + 8 10 1 + 5 10 2
Num sistema de numerao posicional genrico, a posio de cada dgito tem um peso associado Bi onde B a base do sistema de numerao ou radical. O formato geral de um nmero neste sistema : Ap-1Ap-2 A1A0A-1A-2 A-n em que existem p dgitos esquerda do ponto, e n dgitos sua direita. A frmula geral de significncia posicional num sistema de base B :
N = Ai B i
i =0
Exemplo: representar o nmero decimal 845 usando a frmula geral de significncia posicional.
N = Ai B i = 8 10 2 + 4 101 + 5 10 0
i =0
O dgito mais esquerda designa-se por dgito mais significativo (MSD Most Significant Digit), enquanto que o dgito mais direita designado por dgito menos significativo (LSD Least Significant Digit).
o d-k (que o nmero mais direita) o dgito menos significativo (LSD), porque o que tem menos peso na parte fraccionria do nmero. 4137,65(10) = 4 x 103 + 1 x 102 + 3 x101 + 7x100 + 6x10-1 + 5x 10-2 O dgito 4 tem o peso 1000, o dgito 1 o peso 100, o 3 o peso 10, o 7 o peso 1, o dgito 6 o peso 0,1 e o 5 o peso 0,01. 10000 104 1000 103 100 102 10 101 1 100 0,1 10-1 0,01 10-2 0,001 10-3
Genericamente, com n bits podemos contar de zero at ao maior valor dado por: 2n-1 Na tabela esto representados os nmeros at quinze. Nmero Decimal Binrio Zero Um Dois Trs Quatro Cinco Seis Sete Oito Nove Dez Onze Doze Treze Catorze Quinze 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
O nmero 1111, em base 2 (binrio), que deve ser escrito indicando a base imediatamente frente do nmero 11112, em valor decimal (base 10) corresponde a 1510.
Na tabela esto representados os nmeros at dezasseis. Nmero Zero Um Dois Trs Quatro Cinco Seis Sete Oito Nove Dez Onze Doze Treze Catorze Quinze Dezasseis Decimal Octal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
O nmero 17, em base 8 (octal), que deve ser escrito indicando a base imediatamente frente do nmero 178, em valor decimal (base 10) corresponde a 1510. Este sistema pode ser obtido a partir do binrio por associao de conjunto de bits, sendo neste caso associados 3 bits. Ao associar 3 bits, permite 23 valores distintos, ou seja, dgitos de 0 a 7.
O uso de letras para representar nmeros pode aparecer estranho primeira vista, mas note-se que a representao de um nmero apenas uma sequncia de smbolos. mais fcil representar grandezas em hexadecimal que em binrio, o que privilegia este sistema na representao de nmeros e cdigos digitais. Na tabela esto representados os nmeros at dezasseis. Nmero Zero Um Dois Trs Quatro Cinco Seis Sete Oito Nove Dez Onze Doze Treze Catorze Quinze Dezasseis Decimal Binrio Hexadecimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
O nmero F, em base 16 (hexadecimal), que deve ser escrito indicando a base imediatamente frente do nmero F16, em valor decimal (base 10) corresponde a 1510. Como se conta em hexadecimal depois de se alcanar F? Do mesmo modo, inicia-se uma nova coluna a comear em: 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A, 2B, 2C, 2D, 2E, 2F, 30, 31,
Com dois dgitos em hexadecimal podemos representar FF16, que corresponde ao decimal 25510, pois:
A tabela seguinte mostra os nmeros binrios de 0 a 1111 e os seus equivalentes decimais, octais e hexadecimais. Binrio 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 3 bits 000 001 010 011 100 101 110 111 ------------------------Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 4 bits 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
1101012 = 1 2 5 + 1 2 4 + 0 2 3 + 1 2 2 + 0 21 + 1 2 0 = = 1 32 + 1 16 + 0 8 + 1 4 + 0 2 + 11 = 32 + 16 + 0 + 4 + 0 + 1 = 5310
Em relao ao seu peso:
Para os nmeros fraccionrios a representao ainda a mesma, tendo agora os bits direita da vrgula, pesos que so potncias de 2 de expoente negativo. Exemplo 2: Converter o nmero binrio fraccionrio 101,1012 em decimal.
10
Para os nmeros fraccionrios a representao ainda a mesma, tendo agora os dgitos direita da vrgula, pesos que so potncias de 8 de expoente negativo.
11
1234,568 = 1 83 + 2 8 2 + 3 81 + 4 80 + 5 8 1 + 6 8 2 =
= 1 512 + 2 64 + 3 8 + 4 1 + 5 0,125 + 6 0,015625 = = 512 + 128 + 24 + 4 + 0,625 + 0,09375 = 668,7187510
Em relao ao seu peso:
= 3584 + 16 + 4 = 360410
Em relao ao seu peso:
Para os nmeros fraccionrios a representao ainda a mesma, tendo agora os dgitos direita da vrgula, pesos que so potncias de 16 de expoente negativo.
12
E14,568 = E 16 2 + 1 161 + 4 16 0 + 5 16 1 + 6 16 2 =
=14
13
47 2 07 23 2 1 03 11 2 1 1 5 2 1 2 2 0 1 Sentido de
formao
137 2 17 68 2 1 08 34 2 0 14 17 0 1
2 8 0
2 4 0
2 2 2 0 1
Sentido de formao
14
13710=100010012
2 Nmeros fraccionrios
As fraces decimais podem converter-se para binrio pelo mtodo das multiplicaes sucessivas por 2. Para se converter, por exemplo, a fraco decimal 0,2175 para binrio, multiplica-se 0,2175 por 2, multiplicando-se seguidamente cada parte fraccionria restante ainda por 2, at que o resultado seja 0, ou at o nmero de casas decimais pretendidas. Os dgitos obtidos so as partes inteiras dos produtos obtidos, sendo o 1 o MSB e o ltimo o LSD. Exemplo 1: Converter para binrio o nmero 0,317510: 1 etapa 0,3175 x 2 = 0,635 0 MSB 2 etapa 0,635 x 2 = 1,270 1 3 etapa 0,270 x 2 = 0,54 0 4 etapa 0,54 x 2 = 1,02 1 LSB 0,317510=0,01012
24 2 04 12 2 0 0 6 0 LSD
2 3 2 1 1 MSD
15
2 etapa 0,635 x 2 = 1,270 1 3 etapa 0,270 x 2 = 0,54 0 4 etapa 0,54 x 2 = 1,02 1 LSB 0,317510=0,01012
8 31 7
8 3 MSD
198710=37038
16
2 Converter a parte fraccionria: 1 etapa 2 etapa 3 etapa 4 etapa 0,6543 x 8 = 5,2344 5 MSB 0,2344 x 8 = 1,8752 1 0,8752 x 8 = 7,0016 7 0,0016 x 8 = 0,0128 0 LSB 0,654310=0,51708 3 Juntar os dois resultados: 1987,654310=3703,51708
1375 16 09 85 16 15 5 5
F
LSD MSD
137510=55F16 Exemplo 2: Converter o nmero decimal 1987,654310 para hexadecimal:
17
18
19
computador elctrico a sua velocidade, muito superior do computador mecnico. Isto ocorre porque a corrente elctrica muito mais rpida do que qualquer engrenagem mecnica. Quando os computadores passaram a funcionar atravs da energia elctrica, o cdigo binrio foi a melhor forma encontrada para representar os sinais elctricos atravs de algarismos. Isto porque h dois estados possveis para os componentes elctricos: com corrente elctrica ou sem corrente. Desta forma, o bit 0 representado pela falta da corrente elctrica, e o bit 1 pela presena da corrente. Pode-se entender o cdigo binrio comparando os bits a interruptores elctricos, em que 0 indica desligado e 1 ligado, como representado na seguinte figura. Um byte (sequncia de oito bits) pode ento ser imaginado como uma sequncia de oito interruptores, sendo que as posies em que se encontram os interruptores ligados e desligados indica qual o nmero ou letra representados.
Como o cdigo binrio a representao utilizada pelos computadores, toda informao, seja um nmero ou uma letra, precisa de ser representada atravs de um cdigo composto de uma sequncia de 0 e 1. So as diferentes combinaes entre os bits que so usadas para criar uma mensagem que a mquina (o computador, a calculadora, o relgio, etc) possa entender. Como j foi visto, o nmero nove representado pelo sistema binrio por 00001001. Observe que, para qualquer sistema de numerao zeros esquerda no possuem valor algum. A representao 00001001 vista pelo computador como uma lmpada acesa, seguida de duas apagadas, depois outra acesa e por fim quatro apagadas. Os computadores modernos (digitais) efectuam clculos (operaes aritmticas e lgicas) com preciso e rapidez, atravs do uso da lgica binria, desenvolvida por Boole no sculo XIX. Estas operaes so realizadas pelos circuitos integrados, ou chips, existentes nos computadores. Eles nada mais so que componentes electrnicos que realizam operaes lgicas.
20
Operaes Aritmticas
A adio e a subtraco de nmeros que usam bases no decimais seguem regras muito semelhantes s utilizadas para o sistema decimal. Por esse motivo, vamos comear por rever o processo que utilizamos para as operaes em decimal.
21
O processo semelhante soma mas, neste caso, quando o dgito a ser subtrado menor do que o dgito a subtrair, necessrio utilizar um valor emprestado do dgito seguinte. Repare-se no exemplo do segundo dgito: 2 menos 6, como no possvel a 2 retirar 6, opta-se por a 12 retirar 6, indo retirar um valor do dgito seguinte. A este carry negativo chama-se em ingls borrow. Este vaor emprestado pelo dgito seguinte , no passo seguinte, somado ao valor a subtrair. Desta forma, para os terceiros bits, necessrio a 0 tentar subtrair 9 (8+1 bit de borrow, o que origina novo bit de borrow para os quatro bits).
22
23
24
25
positivos, fazer esta subtraco, torna-se necessrio usar um valor de borrow. Ao retirar um valor ao dgito seguinte, dado que se est a trabalhar em hexadecimal, passa a fazer-se a seguinte subtraco: 23-12=11, valor que representado por B. Finalmente, para os dgitos mais significativos, F e 1, atendendo ao borrow do passo anterior, faz-se a operao 15-2=13, ou seja, D. Apresenta-se a seguir um outro exemplo de subtraco em hexadecimal:
26
27
Outro problema aparece quando se pretende fazer operaes com nmeros nesta representao. Observe-se a tabela seguinte: Decimal -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 Binrio 1000 1001 1010 1011 1100 1101 1110 0000 ou 1111 0001 0010 0011 0100 0101 0110 0111
Nesta tabela esto representados os valores de complemento para 1 dos nmeros de 4 bits. Repare-se que, ao percorrer a tabela, quando necessrio passar pelo valor 0, a mudana no corresponde ao acrscimo de um valor, como acontece em decimal, mas ao acrscimo de dois valores. Resulta daqui uma sugesto para fazer a soma em complemento para 1 correctamente: realizar a soma binria normal e somar 1 sempre que a contagem ultrapasse 2n-1. Este facto, resultante da dupla representao para o valor 0, cria problemas adicionais mesmo para operaes em binrio, mas quando se utilizam nmeros negativos surgem algumas limitaes desta notao. Vejamos alguns exemplos:
110011 011001102
102 + ()72 30
+ +
28
Neste caso pretende-se somar 102 com -72. O resultado directo desta operao um nmero negativo, cujo valor absoluto 29. Analisando a tabela anterior, pode corrigirse esta situao adicionando o bit que sobrou da soma directa (e transbordou para alm do bit de sinal) ao resultado da soma, como est ilustrado na figura anterior. Esta correco corresponde passagem por 0. Outro exemplo destas situaes:
52 + ()72 - 20
Neste caso no necessrio efectuar qualquer correco. O resultado est correcto, uma vez que no ultrapassou 2n-1. Vejamos outro exemplo:
110011 110010112
- 52 + 72 20
No caso anterior, a soma ultrapassou o valor 2n-1, pelo que se torna necessrio somar este bit adicional para obter o valor correcto.
110011 110010112
- 52 - 72 -124
+ +
Na figura anterior est apresentada uma nova operao. Neste caso trata-se de somar dois nmeros negativos e, tal como no caso anterior, a contagem ultrapassou 2n-1, sendo tambm necessrio somar o bit adicional. A representao em complemento para 1, tal como a representao em sinal e magnitude, no permite efectuar, mesmo as operaes mais simples de forma directa.
29
Por esse motivo, surgiram outras formas de representar nmeros negativos. A notao de complemento para 2 um desses exemplos e resolve alguns dos problemas.
A representao em complemento para 2 pode ser obtida sem o recurso subtraco indicada anteriormente. Existem duas outras regras prticas que permitem obter o complemento para 2. Qualquer uma das regras vlida. A primeira dessas regras consiste em negar todos os bits que compem a representao positiva do nmero e, em seguida, adicionar-lhe um bit. Vejamos um exemplo desta regra na figura seguinte:
negao
100010102
adicionar 1
100010112 -11710
30
A segunda possibilidade de converso para complemento para 2 uma variante da regra anterior. Consiste em percorrer a representao binria do nmero a converter, da direita para a esquerda, mantendo todos os bits at ao primeiro 1, inclusive, e negando todos os bits a partir da. 010101002
negar
8410
101011002
-8410
Como foi explicado, qualquer destas regras permite obter a representao em complemento para 2 correcta. Optamos por aquela que nos parecer mais fcil de utilizar. Nesta representao, caso seja necessrio fazer uma extenso do nmero de bits, pode repetir-se o bit de sinal. Para o nmero decimal 66, 1000010 em binrio, a representao positiva de 8 bits : 01000010. A representao de 16 bits, quer a binria simples, quer a binria de complemento para 2 : 0000000001000010. Para o mesmo valor negativo, a representao em complemento para 2 de 8 bits 10111110. A representao correspondente de 16 bits pode obter-se repetindo o bit de sinal esquerda 1111111110111110. Esta notao permite, para n bits, representar os valores do seguinte intervalo: -2n-1 a (2n-1-1)
8 + ()5 3
A figura anterior apresenta um exemplo muito simples de soma de um nmero positivo com um negativo. Esta operao equivalente a uma subtraco mas, para a efectuar, necessrio obter previamente a representao de -5. Repare-se que, neste caso, necessrio eliminar um bit que excede os 5 bits usados na representao, mas o bit de sinal est correcto.
31
71 + 30 101
Neste caso, so somados dois nmeros positivos, pelo que o bit de sinal do resultado, como seria de esperar, est a zero.
2)
121 + (-)70 51
Neste caso necessrio eliminar um dgito que cresce ao somar os valores em complemento para 2.
3)
63 + (-)112 - 49
Neste exemplo so novamente somados dois nmeros, sendo que um positivo e o outro negativo, mas desta vez o maior valor o do nmero negativo. Obtm-se o resultado 11001111. Como o bit de sinal 1, significa que o nmero negativo.
4)
- 26 + (-)72 - 98
Neste exemplo, o resultado negativo e cresce novamente um bit da operao, que eliminado. O valor obtido 10011110, o que, uma vez tomado o seu complemento para 2, d 01100010, correspondendo a 98.
32