aula 03 - sistemas de numeração
DESCRIPTION
sistemas de numeraçãoTRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
17
Conversões de Bases
• Converter 10012 para decimal
• Converter 40010 para binário
• Converter 356,2610 para binário
Exercícios
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
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
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
21
Sistema HexadecimalConversões de Bases:
Hexadecimal para Decimal- Exemplo: 3F16
3x161+15x160
48 + 15 = 6310
1 0
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
23
Conversões de Bases
• Converter 1C316 para decimal
• Converter 13410 para hexadecimal
Exercícios
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
25
Conversões de Bases• Converter 13410 para hexadecimal
134 16
86
13410 = 8616
Soluções dos Exercícios
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
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
28
Conversões de Bases
• Converter 1ED16 para binário
• Converter 11000112 para hexadecimal
Exercícios
29
Conversões de Bases• Converter 1ED16 para binário
1ED16
0001111011012
Soluções dos Exercícios
30
Conversões de Bases• Converter 11000112 para hexadecimal
6 3 = 6316
11000112
Insere 0
Soluções dos Exercícios
31
Adição e SubtraçãoAdição e Subtração
Aritmética Computacional
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
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
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
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
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
37
Próxima Aula
● Algoritmos● Linguagens de Programação