Você está na página 1de 87

Company

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
++

para nmeros com parte fracionria


Converso de Bases
Exemplo
(101101)
2
= (?)
10
Converso de Bases
Exemplo
(101101)
2
= (?)
10
1 2
5
+0 2
4
+1 2
3
+1 2
2
+0 2
1
+1 2
0

= (45)
10
Converso de Bases
Exemplo
(27)
8
= (?)
10
Converso de Bases
Exemplo
(27)
8
= (?)
10
2 8
1
+7 8
0
= 23
10

Converso de Bases
Exemplo
(2A5)
17
= (?)
10
Converso de Bases
Exemplo
(2A5)
17
= (?)
10
2 16
2
+10 16
1
+5 16
0
= 512 +160 +5
= 677
10

Converso de Bases
Exemplo
(6734)
8
= (?)
10
Converso de Bases
Exemplo
(6734)
8
= (?)
10
6 8
3
+7 8
2
+3 8
1
+4 8
0

= 3072 +448 +24 +4 = 3548
10

Converso de Bases
Exemplo
(457)
9
= (?)
10
Converso de Bases
Exemplo
(457)
9
= (?)
10
4 9
2
+5 9
1
+7 9
0
= 324 +45 +7 = 376
10

Converso de Bases
Exemplo
(243)
5
= (?)
10
Converso de Bases
Exemplo
(243)
5
= (?)
10
2 5
2
+4 5
1
+3 5
0
= 512 +160 +5
= 50 +20 +3 = 73
10

Converso de Bases
Exemplo
(0,62)
8
= (?)
10
Converso de Bases
Exemplo
(0,62)
8
= (?)
10
0 8
0
+6 8
1
+2 8
2
=
3
4
+
1
32
= 0,78125
Converso de Bases
Converso da base 10 para uma base B
N
B
= (d
n-1
d
n-2
... d
0
)
N
B
=
1

1
+
2

2
+ +
0

0

Precisamos encontrar (d
n-1
d
n-2
... d
0
) tal que N
B
= N
10

Converso de Bases
Converso da base 10 para uma base B
N
B
= (d
n-1
d
n-2
... d
0
)
N
b
=
1

1
+
2

2
+ +
0

0


=
1

2
+
2

3
+ +
1
+
0

Converso de Bases
Converso da base 10 para uma base B
N
B
= (d
n-1
d
n-2
... d
0
)
N
b
=
1

1
+
2

2
+ +
0

0


=
1

2
+
2

3
+ +
1
+
0

=
1

3
+
2

4
++
2
+
1

+
0

Continuando a colocar B em evidncia ...

=
1
+
2
+

3
++1
+
0


Converso de Bases
Converso da base 10 para uma base B


++

+

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

Você também pode gostar