Escolar Documentos
Profissional Documentos
Cultura Documentos
LOGO
Organizao de Computadores
Converso de Bases e Aritmtica
Computacional
Prof. Igor C. G. Ribeiro
Agenda
1. Representao Numrica
2. Converso de Bases
Referncia
Livro do Mrio Monteiro
Captulo 3 (3.1, 3.2, 3.3)
Apndice A (A.1, A.3, A.4, A.5)
Representao Numrica
Notao Posicional
Nmeros so representados por um conjunto
ordenado de dgitos
A posio de cada dgito determina o seu
valor
Ex.:
501 105
O valor do nmero a soma dos valores
de seus componentes
Representao Numrica
Base: quantidade de algarismos
disponveis em um dado sistema de
numerao
Base 2 ( 0, 1) 2 algarismos
Base 8 (0, 1, 2, ... , 7) 8 algarismos
Base 10 (0, 1, 2, ... , 9) 10 algarismos
Base 16 (0, 1, ..., A, B, ..., F) 16 algarismos
Representao Numrica
Exemplo:
2313
10
= 2 * 10
3
+ 3 * 10
2
+ 1 * 10
1
+ 3 * 10
0
5642
10
= 5 * 10
3
+ 6 * 10
2
+ 4 * 10
1
+ 2 * 10
0
Generalizando, seja N
b
= (d
n-1
d
n-2
... d
0
)
b = base
d
i
= algarismo do nmero N
0, 1, ..., n-1 = posio do algarismo
N
b
=
1
1
+
2
2
+ +
0
0
Representao Numrica
Exemplo Nmeros Fracionrios:
59,21
10
= 5 * 10
1
+ 9 * 10
0
+ 2 * 10
-1
+ 1 * 10
-2
= 50 + 9 + 0,2 + 0,01 = 59 + 0,21
33,5
10
= 3 * 10
1
+ 3 * 10
0
+ 5 * 10
-1
= 30 + 3 + 0,5 = 33 + 0,5
Generalizando, seja N
b
=(d
n-1
... d
0
f
1
... f
k
)
d
i
= algarismos da parte inteira de N
f
i
= algarismos da parte fracionria de N
N
b
=
1
1
++
0
0
+
1
1
+
+
Representao Numrica
Computadores representam informaes
na base 2
Entretanto, quanto menor a base, mais
dgitos so necessrios para representar a
informao
Por isso, normalmente mais conveniente
representar os nmeros em bases de
potncias de 2
Base Octal (Base 8)
Base Hexadecimal (Base 16)
Representao Numrica
Ex.: (11000100100111001110)
2
=
20 dgitos
(3044716)
8
= 7 dgitos
(805326)
10
= 6 dgitos
(C49CE)
16
= 5 dgitos
Representao Numrica
Converso de Bases
Converso entre as bases 2 e 8
Como 8 = 2
3
precisamos de 3 bits para
representar os 8 algarismos da base 8
Isso significa que cada grupo de 3 bits em um
nmero inteiro na base dois representa um
algarismo da base 8
Sendo assim, podemos converter facilmente
um nmero na base 2 para um nmero na
base 8 apenas dividindo o nmero na base
dois em grupos de 3, da direita para esquerda,
e calculando seu valor individualmente
Converso de Bases
Exemplo:
(111010111)
2
= (727)
8
Converso de Bases
Exemplo:
(111010111)
2
= (727)
8
1 * 2
2
+ 1 * 2
1
+ 1 * 2
0
= 7
0 * 2
2
+ 1 * 2
1
+ 0 * 2
0
= 2
1 * 2
2
+ 1 * 2
1
+ 1 * 2
0
= 7
Converso de Bases
Exemplo:
(1010011101)
2
= (?)
8
Converso de Bases
Exemplo:
(1010011101)
2
= (?)
8
Converso de Bases
Exemplo:
(001010011101)
2
= (?)
8
Converso de Bases
Exemplo:
(001010011101)
2
= (1235)
8
0 * 2
2
+ 0 * 2
1
+ 1 * 2
0
= 1
0 * 2
2
+ 1 * 2
1
+ 0 * 2
0
= 2
0 * 2
2
+ 1 * 2
1
+ 1 * 2
0
= 3
1 * 2
2
+ 0 * 2
1
+ 1 * 2
0
= 5
Converso de Bases
Exemplo:
(327)
8
= (?)
2
Converso de Bases
Exemplo:
(327)
8
= (?)
2
Converso de Bases
Exemplo:
(327)
8
= (011010111)
2 =
(11010111)
2
0 1 1
0 1 0
1 1 1
Converso de Bases
Exemplo:
(673)
8
= (?)
2
Converso de Bases
Exemplo:
(673)
8
= (?)
2
Converso de Bases
Exemplo:
(673)
8
= (110111011)
2
1 1 0
1 1 1
0 1 1
Converso de Bases
Converso entre as bases 2 e 16
Como 16 = 2
4
precisamos de 4 bits para
representar os 16 algarismos da base 16
Isso significa que cada grupo de 4 bits em um
nmero inteiro na base dois representa um
algarismo da base 16
Sendo assim, podemos converter facilmente
um nmero na base 2 para um nmero na
base 16 apenas dividindo o nmero na base
dois em grupos de 4, da direita para esquerda,
e calculando seu valor individualmente
Converso de Bases
Exemplo:
(1011011011)
2
= (?)
16
Converso de Bases
Exemplo:
(1011011011)
2
= (?)
16
Converso de Bases
Exemplo:
(001011011011)
2
= (2DB)
16
0 * 2
3
+ 0 * 2
2
+ 1 * 2
1
+ 0 * 2
0
= 2
1* 2
3
+ 1 * 2
2
+ 0 * 2
1
+ 1 * 2
0
= 13 = D
1* 2
3
+ 0 * 2
2
+ 1 * 2
1
+ 1 * 2
0
= 11 = B
Converso de Bases
Exemplo:
(10011100101101)
2
= (?)
16
Converso de Bases
Exemplo:
(10011100101101)
2
= (?)
16
Converso de Bases
Exemplo:
(0010011100101101)
2
= (272D)
16
0 * 2
3
+ 0 * 2
2
+ 1 * 2
1
+ 0 * 2
0
= 2
0 * 2
3
+ 1 * 2
2
+ 1 * 2
1
+ 1 * 2
0
= 7
0 * 2
3
+ 0 * 2
2
+ 1 * 2
1
+ 0 * 2
0
= 2
1* 2
3
+ 1* 2
2
+ 0 * 2
1
+ 1 * 2
0
= D
Converso de Bases
Exemplo:
(306)
16
= (?)
2
Converso de Bases
Exemplo:
(306)
16
= (?)
2
Converso de Bases
Exemplo:
(306)
16
= (001100000110)
2
0 1 1 0
0 0 0 0
0 0 1 1
Converso de Bases
Exemplo:
(F50)
16
= (?)
2
Converso de Bases
Exemplo:
(F50)
16
= (?)
2
Converso de Bases
Exemplo:
(F50)
16
= (111101010000)
2
0 0 0 0
0 1 0 1
1 1 1 1
Converso de Bases
Converso entre as bases 8 e 16
Da base 8 para a base 16
Da base 16 para a base 8
Base 8
Base 2
Base 16
Base 16
Base 2
Base 8
Converso de Bases
Exemplo:
(673)
8
= (?)
16
Converso de Bases
Exemplo:
(673)
8
= (?)
16
(673)
8
= (000110111011)
2
(000110111011)
2
= (1BB)
16
1 B B
Converso de Bases
Exemplo:
(F50)
16
= (?)
8
(F50)
16
= (111101010000)
2
(111101010000)
2
= (7520)
8
7 5 2 0
Converso de Bases
Converso de uma base B para a base 10
Podemos simplesmente aplicar a frmula da
notao posicional j apresentada:
N
b
=
1
1
+
2
2
+ +
0
0
para nmeros inteiros e
N
b
=
1
1
++
0
0
+
1
1
++
++
+
N
1
Converso de Bases
Converso da base 10 para uma base B
++
+
N
1
N
2
Converso de Bases
Converso da base 10 para uma base B
=
1
+
0
1
=
2
+
1
1
=
1
++
+
N
1
N
2
N
n-1
Converso de Bases
Converso da base 10 para uma base B
1
=
2
+
0
2
=
3
+
1
1
=
1
B N
1
N
2
d
0
Converso de Bases
Converso da base 10 para uma base B
1
=
2
+
0
2
=
3
+
1
1
=
1
B N
1
N
2
d
0
B
d
1
N
3
Converso de Bases
Converso da base 10 para uma base B
1
=
2
+
0
2
=
3
+
1
1
=
1
B N
1
N
2
d
0
B
N
n-1
d
1
B
Por definio, d
n-1
< B
Converso de Bases
Converso da base 10 para uma base B
1
=
2
+
0
2
=
3
+
1
1
=
1
B N
1
N
2
d
0
B
N
n-1
d
1
B
d
n-1
0
Por definio, d
n-1
< B
Converso de Bases
Converso da base 10 para uma base B
Algoritmo para converso:
Enquanto dividendo for maior que divisor
Dividir dividendo por divisor
Extrair resto como algarismo e coloc-lo a esquerda do
anterior
Repetir
Usar o dividendo (que agora menor que o divisor)
como algarismo mais significativo
Converso de Bases
Ex.:
(3964)
10
= (?)
8
Converso de Bases
Ex.:
(3964)
10
= (?)
8
8 3964
495 4
Converso de Bases
Ex.:
(3964)
10
= (?)
8
8 3964
495 4
8
61
7
Converso de Bases
Ex.:
(3964)
10
= (?)
8
8 3964
495 4
8
61
7
8
5 7
Converso de Bases
Ex.:
(3964)
10
= (?)
8
8 3964
495 4
8
61
7
8
5 7 8
0 7
Converso de Bases
Ex.:
(3964)
10
= (7574)
8
8 3964
495 4
8
61
7
8
7 5 8
0 7
Converso de Bases
Ex.:
(483)
10
= (?)
8
Converso de Bases
Ex.:
(483)
10
= (?)
8
8
483
60 3
Converso de Bases
Ex.:
(3964)
10
= (?)
8
8 483
3
8
7
4
60
Converso de Bases
Ex.:
(3964)
10
= (?)
8
8 483
60 3
8
7
4
8
7 0
Converso de Bases
Ex.:
(3964)
10
= (743)
8
8 483
60 3
8
7
4
8
7 0
Converso de Bases
Converso da base 10 para uma base B
para nmeros fracionrios
Um nmero fracionrio formado por uma
parte inteira e uma parte fracionria
A parte inteira podemos converter utilizando o
algoritmo j explicado
Converso de Bases
Converso da base 10 para uma base B
para nmeros fracionrios
A parte fracionria pode ser representada da
seguinte maneira:
=
++
2
2
+
1
1
= {
1
++
2
1
+
1
}
1
= {[
2
++
2
]
1
+
1
}
1
Converso de Bases
Converso da base 10 para uma base B
para nmeros fracionrios
A parte fracionria pode ser representada da
seguinte maneira:
= {[
2
++
2
]
1
+
1
}
1
= [
2
++
2
]
1
+
1
= [
2
++
2
]
1
Converso de Bases
Converso da base 10 para uma base B
para nmeros fracionrios
Seja N o nmero fracionrio tal que N = INT +
FRAC
Algoritmo (FRAC, n)
Para i = 1 at n faa
X = FRAC * B
f
i =
Int(X)
FRAC = Frac(X)
Converso de Bases
Exemplo:
(0,7265625)
10
= (?)
2
i FRAC X = FRAC*B Int(X) Frac(X)
1 0,7265625 1,453125 1 0,453125
2 0,453125 0,90625 0 0,90625
3 0,90625 1,8125 1 0,8125
4 0,8125 1,625 1 0,625
5 0,625 1,25 1 0,25
6 0,25 0,50 0 0,50
7 0,50 1,00 1 0
Converso de Bases
Exemplo:
(0,78125)
10
= (?)
8
i FRAC X = FRAC*B Int(X) Frac(X)
1 0,78125 6,25 6 0,25
2 0,25 2,0 2 0
Converso de Bases
Exemplo:
(0,78125)
10
= (0,62)
8
i FRAC X = FRAC*B Int(X) Frac(X)
1 0,78125 6,25 6 0,25
2 0,25 2,0 2 0
Converso de Bases
Exemplo:
(0,37)
10
= (?)
2
i FRAC X = FRAC*B Int(X) Frac(X)
1 0,37 0,74 0 0,74
2 0,74 1,48 1 0,48
3 0,48 0,96 0 0,96
4 0,96 1,92 1 0,92
Converso de Bases
Exemplo:
(0,37)
10
= (0,0101)
2
Entretanto:
(0,0101)
2
= 1 * 2
-2
+ 1 * 2
-4
= 0,25 + 0,0625 =
0,3125
10
0,37
10
Impreciso!!!
i FRAC X = FRAC*B Int(X) Frac(X)
1 0,37 0,74 0 0,74
2 0,74 1,48 1 0,48
3 0,48 0,96 0 0,96
4 0,96 1,92 1 0,92
Converso de Bases
Exemplo:
(0,37)
10
= (0,01011)
2
(0,01011110)
2
= 1 * 2
-2
+ 1 * 2
-4
+ 1 * 2
-5
+ 1 * 2
-6
+ 1 * 2
-7
= 0,25 + 0,0625 + 0,03125 + 0,015625
+ 0,0078125 = 0,3671875
i FRAC X = FRAC*B Int(X) Frac(X)
5 0,92 1,84 1 0,84
6 0,84 1,68 1 0,68
7 0,68 1,36 1 0,36
8 0,36 0,72 0 0,72