Documente Academic
Documente Profesional
Documente Cultură
O nmero um conceito abstrato 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 objetos 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 objeto representado por um smbolo. O termo smbolo designa um elemento representativo que est no lugar de algo que representado por um objeto e determinado pela quantidade ou pela qualidade. Exemplos:
5 objetos podem ser representados por /////. Associar quantidades de 10 objetos e usar o smbolo * para as representar. Quantidades de 100 podem ser representadas por + e assim sucessivamente. Assim, 324 objetos 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:
6851 = 6 10 3 + 8 10 2 + 5 101 + 1 10 0
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).
d-k (que o nmero mais direita) o dgito menos significativo (LSD), porque o que tem menos peso na parte fracionria 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 Zero Um Dois Trs Quatro Cinco Seis Sete Oito Nove Dez Onze Doze Treze Catorze Quinze Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binrio 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Octal 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Binri 0000 o 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 10000 Hexadecimal 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:
Para os nmeros fracionrios 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 fracionrio 101,1012 em decimal.
Para os nmeros fracionrios a representao ainda a mesma, tendo agora os dgitos direita da vrgula, pesos que so potncias de 8 de expoente negativo.
= 3584 + 16 + 4 = 360410
Em relao ao seu peso:
Para os nmeros fracionrios a representao ainda a mesma, tendo agora os dgitos direita da vrgula, pesos que so potncias de 16 de expoente negativo.
E14,56 8 = E 16 2 + 1 161 + 4 16 0 + 5 16 1 + 6 16 2 =
=14
Para a converso de nmeros em decimal para outras bases de numerao utiliza-se o mtodo das divises sucessivas. Este mtodo consiste na realizao de uma srie de divises inteiras at que o quociente seja menor que o divisor. O divisor usado o valor da base de destino e os restos das divises inteiras a sequncia de algarismos da base de destino.
47 2 07 23 2 1 03 11 2 1 1 5 2 1 2 2 Sentido de 0 1
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
13710=10001001 2
2 Nmeros fracionrios
As fraes decimais podem converter-se multiplicaes sucessivas por 2. para binrio pelo mtodo das
Para se converter, por exemplo, a frao decimal 0,2175 para binrio, multiplica-se 0,2175 por 2, multiplicando-se seguidamente cada parte fracionria 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
2410=110002 2 Converter a parte fracionria: 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
8 31 7
8 3 MSD
198710=37038
2 Converter a parte fracionria: 1 etapa 2 etapa 0,6543 x 8 = 5,2344 5 MSB 0,2344 x 8 = 1,8752
1 3 etapa 4 etapa 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,6543 10=3703,51708
1375 16 09 85 16 15 5 5 {
F
LSD MSD
137510=55F16 Exemplo 2: Converter o nmero decimal 1987,6543 10 para hexadecimal:
eltrico a sua velocidade, muito superior do computador mecnico. Isto ocorre porque a corrente eltrica muito mais rpida do que qualquer engrenagem mecnica. Quando os computadores passaram a funcionar atravs da energia eltrica, o cdigo binrio foi a melhor forma encontrada para representar os sinais eltricos atravs de algarismos. Isto porque h dois estados possveis para os componentes eltricos: com corrente eltrica ou sem corrente. Desta forma, o bit 0 representado pela falta da corrente eltrica, e o bit 1 pela presena da corrente. Pode-se entender o cdigo binrio comparando os bits a interruptores eltricos, 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) efetuam 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 eletrnicos que realizam operaes lgicas.
Operaes Aritmticas
A adio e a subtrao 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.
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).
positivos, fazer esta , 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 subtrao: 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 subtrao em hexadecimal:
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 corretamente: 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:
102 + ()72 30
Neste caso pretende-se somar 102 com -72. O resultado direto desta operao um nmero negativo, cujo valor absoluto 29. Analisando a tabela anterior, pode corrigirse esta situao adicionando o bit que sobrou da soma direta (e transbordou para alm do bit de sinal) ao resultado da soma, como est ilustrado na figura anterior. Esta correo corresponde passagem por 0. Outro exemplo destas situaes:
52 + ()72 - 20
Neste caso no necessrio efetuar qualquer correo. O resultado est correto, uma vez que no ultrapassou 2n-1. Vejamos outro exemplo:
- 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 correto.
- 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 efetuar, mesmo as operaes mais simples de forma direta.
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 subtrao 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
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 correta. 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 subtrao mas, para a efetuar, 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 correto.
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.