aula 03 - sistemas de numeração

37
1 Prof. Rodrigo Hübner [email protected] IC31A – Introdução à Ciência da Computação Universidade Tecnológica Federal do Paraná – UTFPR Bacharelado em Ciência da Computação Aula 03 Sistemas de numeração

Upload: gabsyf

Post on 22-Dec-2015

224 views

Category:

Documents


1 download

DESCRIPTION

sistemas de numeração

TRANSCRIPT

Page 1: Aula 03 - Sistemas de Numeração

1

Prof. Rodrigo Hü[email protected]

IC31A – Introdução à Ciência da Computação

Universidade Tecnológica Federal do Paraná – UTFPRBacharelado em Ciência da Computação

Aula 03Sistemas de numeração

Page 2: Aula 03 - Sistemas de Numeração

2

Motivação:• Dispositivos que operam com diferentes sistemas de

numeração. Ex: Displays BCD, Simuladores, Calculadoras

• Circuitos Digitais usam 2 estados para representar uma informação. Ex: Circuito Base Transistor

• Números binários podem ser muito extensos Difíceis de representar Usa base com menos algarismos

Sistemas de Numeração

Page 3: Aula 03 - Sistemas de Numeração

3

- Generalizando: Dado uma base b, qualquer quantidade N pode se representada com um número tal como segue:

Onde a é um algarismo válido para a base b e n é a posição que algarismo ocupa na formação do número.

- Parte inteira:

- Parte fracionária:

N b=an⋅bnan−1⋅bn−1...a2⋅b

2a1⋅b

1a0⋅b

0a−1⋅b

−1a−2⋅b

−2...a−n⋅b

−n

an⋅bnan−1⋅bn−1...a2⋅b

2a1⋅b1a0⋅b

0

a−1⋅b−1a−2⋅b

−2...a−n⋅b−n

Formato Geral

N b=∑i=n

−n

ai⋅bi

Page 4: Aula 03 - Sistemas de Numeração

4

- Exemplo: 125,38 (base 10)

1×1022×101

5×1003×10−1

8×10−2

1 2 5 3 8

2 1 0 -1 -2

Algarismos

Posições

Vírgula

1×1002×105×13×0,18×0,01

1002050,30,081250,38125,38

Formato Geral

Page 5: Aula 03 - Sistemas de Numeração

5

Base:

- É a quantidade de algarismos ou símbolos disponíveis para representar todos os números no sistema de numeração é de 0 a (base -1)

- Exemplos:

- Base 10 10 dígitos: 0,1,2,...9

- Base 2 2 dígitos: 0 e 1

- Base 16 16 dígitos: 0,1,2,...,9,A,B,C,D,E,F

Convenção: Bases maiores que 10 usam letras para representar algarismos maiores que 9

Sistemas de Numeração

Page 6: Aula 03 - Sistemas de Numeração

6

Sistema DecimalBase 10:

Base 10 10 dígitos: 0,1,2,...9

- Exemplo:130310

1000 + 300 + 0 + 3 = 1303

Notação Posicional1x10 + 3x10 + 0x10 + 3x10

3 2 1 0

Sistemas de Numeração

Page 7: Aula 03 - Sistemas de Numeração

7

Sistema BinárioBase 2:

Base 2 2 dígitos: 0 e 1 cada dígito é chamado de bit (binary digit)

- Convenção:- 1 dígito: bit- 4 dígitos: nibble- 8 dígitos: byte

- Exemplo:101111

Sistemas de Numeração

Page 8: Aula 03 - Sistemas de Numeração

8

Sistema BinárioConversões de Bases:

Binário para Decimal- Exemplo:

1011112

5 4 3 2 1 0 1x2 + 0x2 + 1x2 + 1x2 + 1x2 + 1x2

32 + 0 + 8 + 4 + 2 + 1 = 47

Sistemas de Numeração

Page 9: Aula 03 - Sistemas de Numeração

9

Sistema BinárioConversões de Bases:

Decimal para Binário- Parte Inteira:

– 2 Métodos: soma de potências e divisões sucessivas

– Exemplo de Soma de Potências:

1011112

47 = 32 + 0 + 8 + 4 + 2 + 1

5 4 3 2 1 0 1x2 + 0x2 + 1x2 + 1x2 + 1x2 + 1x2

Sistemas de Numeração

Page 10: Aula 03 - Sistemas de Numeração

10

Sistema BinárioConversões de Bases:

Decimal para Binário

- Exemplo de Divisões Sucessivas:

47 2

23 2

11 2

5 2

2 2

1

1

1

1

1

04710 = 1011112

Sistemas de Numeração

Page 11: Aula 03 - Sistemas de Numeração

11

● Se o número for fracionário, a conversão se fará em duas etapas distintas:

• Conversão da parte inteira: como já vimos.

• Conversão da parte fracionária

Parte Fracionária

Page 12: Aula 03 - Sistemas de Numeração

12

O algoritmo para a parte fracionária

• consiste em uma série de multiplicações sucessivas do número fracionário a ser convertido pela base;

• a parte inteira do resultado da primeira multiplicação será o valor da primeira casa fracionária e a parte fracionária será de novo multiplicada pela base;

• e assim por diante, até o resultado dar zero ou até encontrarmos o número de casas decimais desejado.

Parte Fracionária

Page 13: Aula 03 - Sistemas de Numeração

13

● Por exemplo, 15,6510 para a base 2, com 5 dígitos e com 10 dígitos de precisão:

● Parte inteira se processa normalmente: 1510= 11112

● Parte fracionária:Com 5 dígitos Ampliando para 10 dígitos

0,65 x 2 = 1,3 0,8 x 2 = 1,6

0,30 x 2 = 0,6 0,6 x 2 = 1,2

0,60 x 2 = 1,2 0,2 x 2 = 0,4

0,20 x 2 = 0,4 0,4 x 2 = 0,8

0,40 x 2 = 0,8 0,8 x 2 = 1,6

Com 5 dígitos:0,65 = 0,10100

Com 10 dígitos:0,65 = 0,1010011001

Precisão 515,6510 = 1111,101002

Precisão 1015,6510 = 1111,10100110012

Parte Fracionária

Page 14: Aula 03 - Sistemas de Numeração

14

● A conversão foi interrompida quando encontramos o número de algarismos da precisão solicitada no enunciado. No entanto, com não encontramos resultado 0 em nenhuma das multiplicações, poderíamos continuar efetuando multiplicações indefinidamente até encontrar (se encontrarmos) resultado zero.

● O resultado encontrado, no caso de interrompermos por chegarmos no número de dígitos especificado, é aproximado.

● Fazendo a conversão inversa é possível notarmos o efeito da aproximação.

Parte Fracionária

Page 15: Aula 03 - Sistemas de Numeração

15

● A conversão foi interrompida quando encontramos o número de algarismos da precisão solicitada no enunciado. No entanto, com não encontramos resultado 0 em nenhuma das multiplicações, poderíamos continuar efetuando multiplicações indefinidamente até encontrar (se encontrarmos) resultado zero.

● O resultado encontrado, no caso de interrompermos por chegarmos no número de dígitos especificado, é aproximado.

● Fazendo a conversão inversa é possível notarmos o efeito da aproximação.

Parte Fracionária

Page 16: Aula 03 - Sistemas de Numeração

16

● Parte inteira: 11112 = 1510

● Parte fracionária:

• Com precisão 5:

● Com precisão 10:

● Quanto maior o número de algarismos forem considerados, melhor será a aproximação.

0,101002=1x2−1+ 0x2−2+ 1x2−3+ 0x2−4+ 0x2−5=0,5+ 0,125=0,62510

0,10100110012=1x2−1+ 0x2−2

+ 1x2−3+ 0x2−4

+ 0x2−5+ 1x2−6

+ 1x2−7+ 0x2−8

+ 0x2−9+ 1x2−10

0,10100110012=1/21/81/641/1281/10240,10100110012=0,50,1250,0156250,00781250,0009765625=0,649414062510

Parte Fracionária

Page 17: Aula 03 - Sistemas de Numeração

17

Conversões de Bases

• Converter 10012 para decimal

• Converter 40010 para binário

• Converter 356,2610 para binário

Exercícios

Page 18: Aula 03 - Sistemas de Numeração

18

Conversões de Bases• Converter 10012 para decimal

10012

1x23+0x22+0x21+1x20

8 + 0 + 0 + 1 = 910

3 2 1 0

Solução dos Exercícios

Page 19: Aula 03 - Sistemas de Numeração

19

Conversões de Bases• Converter 40010 para binário

- Método de Divisões Sucessivas:

400 2

200 2

100 2

50 2

25 2

0

0

0

0

1

40010 = 1100100002

12 2

6 20

0 3 2

11

Solução dos Exercícios

Page 20: Aula 03 - Sistemas de Numeração

20

Sistema HexadecimalBase 16:

Base 16 16 dígitos:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

1016

C12D13E14F15

A10B11

99887766554433221100

HexadecimalDecimal

Sistemas de Numeração

Page 21: Aula 03 - Sistemas de Numeração

21

Sistema HexadecimalConversões de Bases:

Hexadecimal para Decimal- Exemplo: 3F16

3x161+15x160

48 + 15 = 6310

1 0

Sistemas de Numeração

Page 22: Aula 03 - Sistemas de Numeração

22

Sistema HexadecimalConversões de Bases:

Decimal para Hexadecimal - Exemplo de Divisões Sucessivas:

1000 16

62 16

3

814

100010 = 3 14 816 = 3E816

Sistemas de Numeração

Page 23: Aula 03 - Sistemas de Numeração

23

Conversões de Bases

• Converter 1C316 para decimal

• Converter 13410 para hexadecimal

Exercícios

Page 24: Aula 03 - Sistemas de Numeração

24

Conversões de Bases• Converter 1C316 para decimal

1C316

1x162+12x161+3x160

256 + 192 + 3 = 45110

2 1 0

Soluções dos Exercícios

Page 25: Aula 03 - Sistemas de Numeração

25

Conversões de Bases• Converter 13410 para hexadecimal

134 16

86

13410 = 8616

Soluções dos Exercícios

Page 26: Aula 03 - Sistemas de Numeração

26

Sistema HexadecimalConversões de Bases:

Hexadecimal para Binário: Transforma cada algarismo hexa no correspondente binário (para cada hexa são necessários 4 bits 24 = 16 – Base hexa)

- Exemplo: C1316

1100000100112

1111F1110E1101D1100C1011B1010A10019100080111701106010150100400113001020001100000

BinárioHexadecimal

Sistemas de Numeração

Page 27: Aula 03 - Sistemas de Numeração

27

Sistema HexadecimalConversões de Bases:

Binário para Hexadecimal: Processo inverso – agrupa-se 4 bits a partir da direita

- Exemplo:

9 8 = 9816

100110002

Sistemas de Numeração

Page 28: Aula 03 - Sistemas de Numeração

28

Conversões de Bases

• Converter 1ED16 para binário

• Converter 11000112 para hexadecimal

Exercícios

Page 29: Aula 03 - Sistemas de Numeração

29

Conversões de Bases• Converter 1ED16 para binário

1ED16

0001111011012

Soluções dos Exercícios

Page 30: Aula 03 - Sistemas de Numeração

30

Conversões de Bases• Converter 11000112 para hexadecimal

6 3 = 6316

11000112

Insere 0

Soluções dos Exercícios

Page 31: Aula 03 - Sistemas de Numeração

31

Adição e SubtraçãoAdição e Subtração

Aritmética Computacional

Page 32: Aula 03 - Sistemas de Numeração

32

Circuitos Aritméticos: circuitos utilizados para construir a ULA (Unidade Lógica e Aritmética)

Adição

Exemplo de adição em decimal (dígitos de 0 a 9):

Cada posição só pode representar um dígito, por isso, gera um carry (vai um)

3 7 6

4 6 1+3 7 6

4 6 1

7

+

13 7 6

4 6 1

3 7

+3 7 6

4 6 1

8 3 7

1

+

Aritmética Computacional

Page 33: Aula 03 - Sistemas de Numeração

33

a) 0

0

0

+

Adição em Binário :

Exemplo Cada posição só pode representar um dígito, por isso, gera um carryb) 0

1

1

+

c) 1

0

1

+

d) 1

1

10

+

1 0 1 0 1

0 0 1 1 1+1 0 1 0 1

0 0 1 1 1

0

+

1 0 1 0 1

0 0 1 1 1

0 0

+1 0 1 0 1

0 0 1 1 1

1 0 0

+

1 0 1 0 1

0 0 1 1 1

1 1 0 0

+

1 0 1 0 1

0 0 1 1 1

1 1 1 0 0

+

1 1 1 11 10 0

cin

cout Soma

Aritmética Computacional

Page 34: Aula 03 - Sistemas de Numeração

34

Subtração

Exemplo de subtração em decimal (dígitos de 0 a 9):

Empresta 1 da coluna da esquerda para formar a dezena

7 6

5 8-7 6

5 8

-

16

8

7 6

5 8

8

-

6

1

Aritmética Computacional

Page 35: Aula 03 - Sistemas de Numeração

35

Subtração em Binário

Exemplo

a) 0

0

0

-

b) 0

1

1

-

c) 1

0

1

-

d) 1

1

0

-

Gera um “empresta-1” (carry out) da coluna seguinte: a 1a coluna passa a valer 210=102

O carry out será subtraído da coluna seguinte na continuação da operação

1

Aritmética Computacional

Page 36: Aula 03 - Sistemas de Numeração

36

Subtração em Binário :

ExemploGera um “empresta-1” (carry out) da coluna seguinte: a 1a coluna passa a valer 102=210

1 0 1 0

0 0 1 1-1 0 1 0

0 0 1 1

-

1 0 1 0

0 0 1 1

-

10

Subtração

1 1

01 0 1 0

0 0 1 1

-

11

1 0 1 0

0 0 1 1

-

11

1 0 1 0

0 0 1 1

-1

11

0

1

1 0 1 0

0 0 1 1

-

1

1

110

Aritmética Computacional

10 0 10 0 1

0

1

Page 37: Aula 03 - Sistemas de Numeração

37

Próxima Aula

● Algoritmos● Linguagens de Programação