Escolar Documentos
Profissional Documentos
Cultura Documentos
214-2015
-1-
V0beta
11
12
valor 10+2 - o dgito da esquerda tem o seu valor multiplicado por 10;
...
19
20 mais uma vez esgotaram-se os dgitos na primeira posio: aumenta-se 1 na posio seguinte; j
contamos 2 vezes a base, ou seja, vamos em 2x10; 21
..
25
valor 2x10 + 5 : o dgito da esquerda tem o valor multiplicado por 10;
...
99
100
esgotaram-se agora os dgitos na segunda posio; isso significa que contmos 10 vezes a
base, ou seja 10x10; um dgito na 3 posio vale a base ao quadrado;
...
317
...
999
neste caso, o 3 vale pela base2, o 1 pela base e o 7 pelo seu valor;
maior nmero com 3 algarismos
214-2015
-2-
V0beta
11
12
nmero 10+2 em octal; (em decimal seria 1x8+2 ou seja o nmero 10)
...
17
20 mais uma vez esgotaram-se os dgitos na primeira posio: aumenta-se 1 na posio seguinte; j
contamos 2 vezes a base, ou seja, vamos em 2xbase (em decimal seria 2x8); 21
...
77
100
contmos base * base vezes; o dgito 1 na terceira posio vale a base2 (em decimal seria 2x82);
101
...
777
1000
214-2015
-3-
V0beta
maior valor representvel com um algarismo (em decimal seria o nmero 15);
esgotaram-se os dgitos, logo esgotou-se a capacidade de representao de nmeros s com
um dgito; passamos a usar dois; o 1 da esquerda vale a base (em decimal seria o nmero 16);
nmero 10 + 2, ou seja 1xbase + 2 (em decimal seria 16 + 2);
contmos duas vezes o nmero de dgitos; vamos em 2xbase (em decimal seria 2x16);
100 contmos (base X base) vezes; vamos em base2 (seria 162 em decimal);
...
FFF maior nmero com 3 algarismos em base 16;
1000
214-2015
-4-
V0beta
(1)
O valor respetivo de cada um, em decimal, o que resulta da expresso anterior. Assim:
(312)10 = 3x102 + 1x101 + 2x100
(312)8 = 3x82 + 1x81 + 2x80
(312)16 = 3x162 + 1x161 + 2x160
Obviamente os trs nmeros representados so todos diferente. Seria disparate dizer, por
exemplo, "o nmero 312 em base 10 o mesmo nmero 312 em base 8". Todas as
sequncias de dgitos iguais em bases diferentes representam nmeros diferentes (exceto),
obviamente as que tm apenas um dgito). Pode confirmar, por exemplo, que:
(312)10 = (470)8 = (138)16
(202)10 = (312)8 = (CA)16
(786)10 = (1442)8=(312)16
214-2015
-5-
V0beta
Exemplo:
(42.57)10 = 4x101 + 2x100 + 5x10-1 + 7x10-2
(42.57)8 = 4x81 + 2x80 + 5x8-1 + 7x8-2
(4C.A7)16 = 4x161 + 12x160 + 10x16-1 + 7x16-2
(10.01)2 = 2 + 1/4
2. Operaes
2.1 Soma
Contar basicamente tudo o que precisamos para fazer as operaes elementares de somar
e subtrair. Vamos, agora, rever os procedimentos que usamos para a realizao destas
operaes.
Exemplo (em base 10), da direita para a esquerda:
- ao primeiro algarismo, 3, juntamos 2 (a partir de 3 contamos mais 2);
- a partir de 2 contamos mais 5; - a partir de 8 contamos 6, para dar 14;
21823
+ 2652
aqui h um incidente: a contagem ultrapassa 10, ou seja, a base; 2 4 4 7 5
deixamos como resultado o algarismo das unidades 4 e juntamos os
restantes 10 somando 1 na posio seguinte;
dizemos, ento, que h 1 de transporte (ou, informalmente, e vai um);
O mecanismo para somar exatamente igual em qualquer outra base. Vejamos um exemplo
em base 8:
Exemplo (em base 8), da direita para a esquerda:
- 3 e 2 d 5;
- 6 e 5 d 13 (a partir de 6 contamos 5 vezes, ou seja: 7 10 11 12 13 ) como
214-2015
-6-
2163
+ 252
2435
21623
+ 2562
24405
21623
+ 2562
23B85
V0beta
E F 10 11)
2 F6A3
+ 256D
3 1C10
2.1 Subtrao
O mecanismos que usamos vulgarmente para fazer a subtrao aplicam-se tambm, com os
mesmos princpios, quer base 10 quer s outras bases.
Seja uma operao elementar, por exemplo 7-2. A maneira mais bsica de fazer a operao
mais uma vez contar - neste caso contar de baixo (i.e. do subtrativo) para cima (i.e. para o
aditivo). O nmero de vezes que contarmos , justamente, a diferena.
Para fazer a subtrao de nmeros com mais algarismos generalizamos o processo
seguindo da direita para a esquerda. Em cada posio fazemos a diferena entre o algarismo
de cima e o de baixo.
Exemplo: neste caso faramos:
- 2 para 7: conta 3 4 5 6 7, ou seja 5 vezes; - 6 para 3 conta 7 vezes e
vai um de transporte...
- o transporte soma ao 7, assim fazemos 8 para 9...
- ...
2937
- 762
2175
2932
- 797
2135
214-2015
-7-
2437
- 462
1755
2430
- 572
1636
V0beta
CBC2
- 57A
C648
1234
- 57A
CBA
10110
+ 10111
101101
101101
- 10111
10110
214-2015
-8-
V0beta
Para converter um nmero para base 10 basta calcular esta expresso. Assim, por exemplo:
(312)10 = 3x102 + 1x101 + 2x100
(312)8 = 3x82 + 1x81 + 2x80
(312)16 = 3x162 + 1x161 + 2x160
(1001) 2 = 1x23 + 0x22 + 0x21 + 1x20
=
=
=
=
Exerccio de aplicao
(4.02)8 = 4x80 + 0x8-1 + 2x8-2
(A.BC)16= 10 + 11x16-1 + 12x16-2
(101.101)2 = 4+1+1/2+1/16
= ...
= ...
= ...
3x100 + 10 + 2 = 312
3x46 + 8 + 2 = 148
3x256 + 16 + 1 = 785
8+1 = 9
2
6
0
2
3
1
2
1
12(10) = 1100(2)
214-2015
-9-
V0beta
214-2015
-10-
V0beta
Assim: em cada passo multiplica-se o nmero pela base. A parte inteira do resultado d um
algarismo do nmero. Com a parte fracionria do resultado repete-se o procedimento.
Eventualmente, como acontece neste exemplo, obtemos um resultado com parte
fracionria 0 e o processo termina.
Nestas condies obtemos uma converso exata - um nmero na base de converso
exatamente igual ao original.
Mas nem sempre o processo corre to bem. Vejamos estas duas converses de um nmero
decimal para binrio:
Exemplo: converter: converter (0.125)10 para binrio
0.125 * 2 = 0.250
0.250 * 2 = 0.5
0.5 * 2 = 1.0
resultado (0.125) 10 = (0.001) 2.
Exemplo: converter (0.2) 10 para binrio
0.2 * 2 = 0.4
0.4 * 2 = 0.8
0.8 * 2 = 1.6
0.6 * 2 = 0.2
0.2 * 2 = 0.4
...
Neste caso o processo no termina. Alis, podemos at concluir que entra num padro de
repetio, originando uma "dzima peridica infinita".
Nestas condies o nmero decimal original no pode ser representado com exatido na
base 2. Eventualmente paramos e ficamos com uma representao aproximada. Por
exemplo, usando um mximo de 20 dgitos na parte fracionria, o resultado aproximado
seria:
(0.0010 0010 0010 0010 001) 2
214-2015
-11-
V0beta
5. Bases "binrias"
5.1 Binrio
Tudo o que se disse anteriormente vlido para binrio como para qualquer outra base. Mas
em binrio, havendo apenas dois dgitos, as expresses tomam em geral formas mais
simplificadas que permitem de alguma forma agilizar os processos de raciocnio.
Seja, por exemplo, a converso de um nmero binrio para decimal.
(101 1001)2 = 1x26 + 0x25 + 1x24 1x23 + 0x22 + 0x21 + 1x20
As potncias de 2 multiplicam por 0 ou por 1 - no primeiro caso para dar 0: no segundo caso
para dar a prpria potncia de 2. Assim, podemos escrever de uma forma mais simplificada:
(101 1001)2 = 26 + 24 + 23 + 20
esta expresso acaba por ter uma leitura muito direta: o que interessa so os 1's do
nmero binrio; o valor decimal o que resulta das soma das potncias de 2
correspondentes aos 1 do nmero binrio.
Para este e para muitos outro efeitos convm por vezes ter presente os
valores das potncias de 2. Vale a pena decorar estes valores pelo
menos at 210.
Posio
10
1024
512
256
128
64
32
16
20
21
22
1
2
4
23
24
25
26
8
16
32
64
27
28
29
210
128
256
512
1024
Peso
Considerando um nmero neste grelha imaginria, o seu valor o que resulta da soma dos
1's que o nmero contm. Por exemplo:
1
= 28 + 26 + 23 + 22= 256 + 64 + 8 + 4
O mesmo tipo de modelo poderia ser usado para converter de decimal para binrio. Trata-se,
afinal de contas, de colocar 1's na grelha at que a "soma" forme o nmero pretendido.
Seja, por exemplo, o nmero 300. claro que seria excessivo colocar um 1 na posio 29
(512) ou mais para esquerda - isso faria desde logo o nmero maior que 512. Correto
colocar um 1 no posio 28(256), tendo em vista formar um nmero maior que 256 (e menor
que 512).
JRG, www.iscte.pt/AC
-12-
T001-Bases-v001b
8
1
5
1
-> 23
-> 22
(1 0010 1100)2.
5.3 Octal
A base fundamental para a computao digital obviamente a base 2. As outras bases de
trabalho importantes so a base 8 ("octal") e a base16 ("hexadecimal") - ambas, elas
prprias, potncias de 2.
Acontece que h uma relao muito simples entre a representao de um nmero em binrio
e a representao do mesmo nmero em octal ou hexadecimal (ou, em geral, numa qualquer
outra base que seja potncia de 2). De certa forma a representao nestas bases pode ser
vista como uma forma compacta de representao em binrio e este realmente o seu
principal interesse.
A relao de octal para binrio de um para trs dgitos. Para converter um nmero de octal
para binrio substitui-se cada dgito pela respetiva representao em binrio, usado trs bits.
Ao contrrio, para converter um nmero de binrio em octal, substitui-se cada grupo de 3 bits
por um algarismo octal.
Para estas converses convm decorar a seguinte tabela que lista os nmeros binrios de 0
a 7 (representados em trs bits).
2014-2015-2016
-13-
V01beta
0
1
2
3
4
5
6
7
Por exemplo:
1
000
001
010
011
100
101
110
111
Usando esta tabela podemos facilmente converter um nmero de octal para binrio:
(163)8 = (001 110 011)2 = ( 1 110 011)2
(32.04)8 = ( 011 010 . 000 100 ) 2 = ( 11 010 . 000 1 ) 2
Igualmente podemos fazer as converses contrrias, se necessrio juntando 0s esquerda
da parte inteira ou direita da parte fracionria:
( 11001)2 = ( 011 001)2 = (31) 8
(11011.01101) 2 = ( 011 011.011 010) 2= (33.32)8
5.3 Hexadecimal
O interesse da base 16 (hexadecimal) semelhante ao do octal. uma representao
compacta de binrio em que a cada dgito hexadecimnal correspondem 4 dgitos binrios.
Para fazer a correspondncia convm decorar a seguinte tabela.
Para "decorar" a tabela basta ter presente a grelha de colocao,
agora com 4 bits.
8
Exemplo
1
9 = 8 + 1 => 1001
12
13
= 8 + 4 + 1 => 1101
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
2014-2015-2016
-14-
V01beta
2014-2015-2016
-15-
V01beta
seria o +12
seria o -12
10000
- 0110
1010
2014-2015-2016
-16-
V01beta
Exemplo: 7 + (-5)
0 1 1 1 <- 7
+ 1 0 1 1 <- -5
1 0 0 1 0 <- 2
fazendo a soma e descartando o bit de excesso obtemos, justamente, 2.
Alis o mesmo bom comportamento acontece nestes outros casos:
Exemplo: 5 - 7 , ou seja, 5 + (-7), d -2 (representado em complemento).
0 1 0 1 <- 5
+ 1 0 0 1 <- -7
0 1 1 1 0 <- -2
As contas anteriores justificam-se, tambm, algebricamente, sendo importante nalguns casos
a questo de descartar o bit de excesso - em particular nos casos em que esse bit 1.
Seja por exemplo a diferena de dois nmeros positivos A e B. Neste caso em vez da
diferena A-B podemos fazer a soma com o complemento ou seja A+(2N-B). Isto d A-B+2N
que quase o mesmo resultado. Nesta situao ao descartar o bit de excesso estamos
justamente a subtrair 2N. Assim, obtemos A+(2N-B) - 2N que exatamente A-B.
2014-2015-2016
-17-
V01beta
Fica como exerccio validar o mesmo raciocnio noutras circunstncias. Por exemplo:
3-(-2) = 5
3-5=-2
-2-3=-5
6.4.4 Overflow
Seja como for, a capacidade de representao dos nmero em binrio sempre limitada.
Isso quer dizer que podemos fazer operaes comuns (designadamente somas) de nmeros
vlidos que dariam como resultado nmeros j no representveis.
Por exemplo, se tivermos 8 bits e nmeros sem sinal o maior nmero representvel 255.
Somando 140 + 140 obteramos 280 que j no representvel - seriam precisos 9 bits. Nesta
situao o resultado efetivo da operao (8 bits) seria 24.
1 0 0 0 1 1 0 0
+ 1 0 0 0 1 1 0 0
1 0 0 0 1 1 0 0 0
Nestas circunstncias em que operando dois nmeros vlidos se obtm um nmero no
representvel diz-se que estamos numa situao de overflow. Neste caso a situao fcil
de reconhecer: h overflow se o bit de excesso der 1.
Tratando-se de nmeros com sinal o overflow pode acontecer em duas situaes: fazendo
uma operao que daria um nmero positivo maior do que o maior nmero positivo
representvel; ou fazendo operao que daria um nmero negativo menor do que o menor
nmero positivo representvel.
Seja de novo a situao com nmeros de 4 bits.
O primeiro caso protagonizado por uma soma de
0 1 0 1 <- 5
nmeros positivos cujo resultado daria maior do + 0 1 0 1 <- 4
que 7 (e que seria interpretvel como nmero
0 1 1 1 0 <- -2
negativo !).
2014-2015-2016
-18-
V01beta
7. Representao de caracteres
7.1 Cdigo ASCII
Nos computadores digitais o texto tambm, naturalmente, representado em bits. A
estratgia neste caso codificar cada um dos caracteres que podem compor o texto, ou seja,
representar cada caracter por uma sequncia de bits nica e distinta.
A codificao clssica para este efeito a que consta da tabela designada por cdigo ASCII.
O cdigo ASCII original usa 7 bits para representar cada caracter.
Genericamente, um texto uma sequncia de caracteres. Por exemplo, o texto representado
na figura constitudo pela seguinte sequncia de caracteres:
letra O letra l
letra a
Ola Mundo,
um caracter de mudana de linha
bla, bla
letra M letra u
...
Usando o cdigo ASCII cada um destes bits seria representado por 7 bits. De acordo com a
Tabela este texto poderia ser representado pela sequncia de bits: 100 1111
110 1100
110 0001
000 1010
110 1101
...
7.2 Particularidades importantes
O cdigo ASCII tem algumas caractersticas importantes que interessa saber e que alis tm
um papel essencial no processamento de caracteres.
Note para comear que os primeiros caracteres so especiais - correspondem a caracteres
de controlo, sem representao visvel. O termo "de controlo" significa que o objeto que trata
o caracter o interpreta como um "comando" e no como um smbolo para "escrever". Alguns
destes caracteres so conhecidos: por exemplo o caracter 7 o bell (campainha); quando
recebido por um terminal dever originar um som. Os caracteres 10 e 13 so usados para
controlar as mudanas de linha. Por exemplo, uma impressora ao receber um caracter CR
(000 1101) deve "voltar ao incio da linha" e ao receber o caracter LF (000 1010) deve
"mudar de linha".
Estes mesmos caracteres so, em muitas circunstncias, usados nos ficheiros de texto para
assinalar as mudanas de linha. Os detalhes dependem do editor de texto e do sistema
operativo. Por exemplo, num comum ficheiro de texto em Unix a mudana de linha
assinalada pelo caracter 10 - tambm conhecido por \n que a sua representao simblica
na linguagem C.
2014-2015-2016
-19-
V01beta
2014-2015-2016
-20-
V01beta
2014-2015-2016
-21-
V01beta
2014-2015-2016
-22-
V01beta