Você está na página 1de 17

Sumário

• Introdução
• Representação de Dados
– Sistemas de Numeração Posicionais
– Representação de Números Inteiros
– Representação de Números Reais
– Códigos Alfanuméricos
• Algoritmos
• Linguagem Python

Aula 02 Algoritmos Computacionais 1


Representação
de Dados
Sistemas de Numeração Posicionais
• Em sistemas posicionais, números são representados por
sequências de símbolos (dígitos)
• Cada dígito tem um peso, dado por uma potência da base, que
depende da posição que este dígito ocupa na representação do
número
• Exemplo: Sistema Decimal (base 10)
1989 = 1000+900+80+9
1989 = 1×103 + 9×102 + 8×101 + 9×100

– Os pesos crescem para a esquerda na parte inteira e decrescem


para a direita na parte fracionária
13,45= 1×101 + 3×100 + 4×10-1 + 5×10-2

Aula 02 Algoritmos Computacionais 2


Representação
de Dados
Sistemas de Numeração Posicionais

Um sistemas posicional qualquer pode ser definido por um
alfabeto (coleção ordenada de símbolos), onde:
– O primeiro símbolo representa a ausência (zero)
– Os demais símbolos representam quantidades inteiras
crescentes

Exemplos:
– Sistema binário (base 2):

Alfabeto: {0,1}
– Sistema octal (base 8):

Alfabeto: {0,1,2,3,4,5,6,7}
– Sistema Hexadecimal (base 16):

Alfabeto: {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Aula 02 Algoritmos Computacionais 3
Representação
de Dados
Sistemas de Numeração Posicionais

Dado um sistema de numeração, definiremos que avançar um
dígito significa substituir o símbolo correspondente pelo próximo
símbolo do respectivo alfabeto ordenado

O processo de enumerar os números naturais em um sistema
posicional pode ser descrito pelo seguinte algoritmo:
1) O primeiro número natural é o zero – primeiro símbolo do
alfabeto, que representa a ausência
2) O próximo número natural é sempre obtido a partir do anterior
avançando o seu dígito mais à direita; quando o dígito a ser
avançado é o último símbolo do alfabeto, o substituiremos
pelo primeiro símbolo (que representa a ausência), e
avançaremos o dígito imediatamente à esquerda deste

Aula 02 Algoritmos Computacionais 4


Representação
de Dados
Sistemas de Numeração Posicionais

Exemplo: sistema decimal, alfabeto: {0,1,2,3,4,5,6,7,8,9}
– Depois de 264, o próximo número natural é 265

Avançamos o dígito mais à direita de 4 para 5
– Depois de 169, o próximo número natural é 170

O dígito mais à direita é o último do alfabeto (9); logo, o
substituímos pelo primeiro (0) e avançamos o dígito
imediatamente à esquerda, de 6 para 7
– Depois de 99, o próximo inteiro é 100

O dígito mais à direita é o último do alfabeto (9); logo, o
substituímos pelo primeiro (0) e avançamos o dígito
imediatamente à esquerda; porém, como este também é o último
do alfabeto (9), o substituímos pelo primeiro (0) e avançamos o
dígito imediatamente à esquerda deste, que era 0 (099) e, logo,
avança para 1
Aula 02 Algoritmos Computacionais 5
Representação
de Dados
Sistemas de Numeração Posicionais

Exemplo:
– A enumeração dos naturais no sistema octal (alfabeto
{0,1,2,3,4,5,6,7} fica:
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22,
23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, …
– A enumeração dos naturais no sistema binário (alfabeto {0,1})
fica:
0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100,
1101, 1110, 1111, 10000, 10001, 10010, 10011, 10100, ...

Aula 02 Algoritmos Computacionais 6


Representação
de Dados
Sistemas de Numeração Posicionais

• Exercício 1: Gerar os 26 primeiros números naturais do


sistema de base R=5 e alfabeto {0,1,2,3,4}.

• Exercício 2: Gerar os 13 primeiros números naturais do


sistema de base R=3 e alfabeto {n,a,b}.

Aula 02 Algoritmos Computacionais 7


Representação
de Dados
Sistemas de Numeração Posicionais

• A enumeração simultânea Hexa-


decimal
Octal Binário Decimal
em diferentes sistemas de 0 0 0 0
numeração pode nos 1 1 1 1

fornecer a 2 2 10 2
3 3 11 3
correspondência entre os 4 4 100 4
números 5 5 101 5

• Porém, precisamos de um 6 6 110 6


7 7 111 7
método prático e geral 8 10 1000 8
para conversão de 9 11 1001 9

bases... A 12 1010 10
B 13 1011 11
C 14 1100 12
D 15 1101 13
E 16 1110 14
F 17 1111 15

Aula 02 Algoritmos Computacionais 8


Representação
de Dados
Sistemas de Numeração Posicionais
Conversão de uma base qualquer para a base 10

• Converte-se a base e cada dígito do número para o equivalente decimal


• Decompõe-se o número de acordo com a estrutura posicional: cada dígito
tem um peso dado por uma potência da base

Para o dígito das unidades, o expoente é 0 (zero); para os demais
dígitos, o expoente cresce à esquerda, e decresce à direita
• Usando aritmética decimal, efetuam-se as operações de produtos e somas
• Exemplos:

Notação: (...)R ler como o número entre parênteses expresso na base R.

(1101)2 = 1×23 + 1×22 + 0×21 + 1×20 = 8+4+0+1 = 13


(2B0)16 = 2×162 + 11×161 + 0×160 = 512+176+0 = 688
(110,001)2 = 1×22 + 1×21 + 0×20 + 0×2-1 + 0×2-2 + 1×2-3 = 6,125

Aula 02 Algoritmos Computacionais 9


Representação
de Dados
Sistemas de Numeração Posicionais
Conversão de uma base qualquer para a base 10

• Exercício 3: Converter os seguintes números para a base


decimal:

(110011)2
(BF12)16
(11,11)2

Aula 02 Algoritmos Computacionais 10


Representação
de Dados
Sistemas de Numeração Posicionais
Conversão da base 10 para uma base qualquer

• Parte inteira: Algoritmo da divisão repetida


– Efetua-se a divisão inteira do número decimal repetidamente
pela base R até que se obtenha um quociente inteiro igual a
zero; os restos das divisões sucessivas, lidos do último para o
primeiro, constituem o número transformado para a base R
Exemplo: (341)10 = (2331)5

341 5
-340 68 5
1 -65 13 5
3 -10 2 5
3 -0 0
2

Aula 02 Algoritmos Computacionais 11


Representação
de Dados
Sistemas de Numeração Posicionais
Conversão da base 10 para uma base qualquer

• Parte Fracionária: Algoritmo da multiplicação repetida


– A parte fracionária do número decimal é multiplicada por R; a
parte inteira desse produto é guardada e a parte fracionária é
novamente multiplicada por R; o processo é repetido até que se
obtenha um número com parte fracionária nula ou até que se
considere a aproximação suficiente;
– As partes inteiras dos produtos sucessivos, lidas da primeira
para a última, formam a parte fracionária do número na base R

Aula 02 Algoritmos Computacionais 12


Representação
de Dados
Sistemas de Numeração Posicionais
Conversão da base 10 para uma base qualquer

• Parte Fracionária: Algoritmo da multiplicação repetida


– Exemplo: Transformar (0,4375)10 para a base 2

0,4375 x 2 = 0,8750
0,8750 x 2 = 1,7500
0,7500 x 2 = 1,5000
0,5000 x 2 = 1,0000

(0,4375)10 = (0,0111)2

Aula 02 Algoritmos Computacionais 13


Representação
de Dados
Sistemas de Numeração Posicionais
Conversão da base 10 para uma base qualquer

• Exercício 4:

– Transformar (34,63)10 para a base 2

– Transformar (163,15625)10 para a base 16

Aula 02 Algoritmos Computacionais 14


Representação
de Dados
Sistemas de Numeração Posicionais
Operação de Soma em base binária

• A soma em base 2 é semelhante à soma decimal: dispõe-se os números a


serem somados um abaixo do outro, com os dígitos de mesmo peso
alinhados, e somam-se os dígitos individuais, da direita para a esquerda
• As possibilidades de soma entre dígitos individuais são:
0+0=0
0+1=1
1+0=1
1 + 1 = 10 (fica 0 e vai 1 para a próxima coluna)
1 + 1 + 1 = 11 (fica 1 e vai 1 para a próxima coluna)

Aula 02 Algoritmos Computacionais 15


Representação
de Dados
Sistemas de Numeração Posicionais
Operação de Soma em base binária

• Exemplos:

1 1111 (vai 1)
101101 (45)10
+ 101111 (47)10
1011100 (92)10

111 (vai 1)
100101 (37)10
+ 1010111 (87)10
1111100 (124)10

Aula 02 Algoritmos Computacionais 16


Representação
de Dados
Sistemas de Numeração Posicionais
Operação de Soma em base binária

• Exercício 5: Efetue as seguintes operações no sistema binário:

(110011)2 + (10101)2
(1001,11)2 + (1111,1)2

Aula 02 Algoritmos Computacionais 17

Você também pode gostar