Bases Numéricas

Propaganda
Aula 4: Bases Numéricas
Diego Passos
Universidade Federal Fluminense
Fundamentos de Arquiteturas de Computadores
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
1 / 36
.
Introdução e Justificativa
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
2 / 36
.
Sistemas de Numeração
Sistema de escrita para expressão de números.
▶
Notação matemática.
Composto por símbolos.
▶
▶
Símbolos tem significados ou valores diferentes.
Suas posições (absolutas ou relativas a outros símbolos) também podem alterar seu significado.
Exemplos:
▶
▶
Sistema de numeração arábico: 7, 16, 154.
Sistema de numeração romano: VII, XVI, CLIV.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
3 / 36
.
O Sistema de Numeração Arábico
Sistema utilizado no dia a dia (na maior parte do mundo).
É um sistema decimal ou de base 10.
▶
▶
▶
Há dez símbolos (algarismos) diferentes disponíveis.
0, 1, 2, . . . , 9.
Possivelmente motivado pela quantidade de dedos nas mãos.
É um sistema posicional.
▶
▶
i.e., mesmo símbolo representa valores diferentes dependendo da sua posição.
e.g., símbolo ‘1’ pode ter valor um, dez, mil (ou outros) dependendo da sua posição.
Leitura de um número:
▶
Cada algarismo é multiplicado pela potência de 10 correspondendo à sua posição.
⋆
▶
Da direita para a esquerda, 100 , 101 , 102 , . . .
Os valores são somados.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
4 / 36
.
O Sistema de Numeração Arábico: Exemplos
Exemplo com 5 algarismos
Número
1
4
3
6
Posição
4
3
2
1
4
3
2
Multiplicador
10
10
10
101
Valores
10000 4000 300 60
Total
14367
Número
Posição
Multiplicador
Valores
Total
Exemplo com 7 algarismos
6
3
9
2
6
5
4
3
6
5
4
10
10
10
103
6000000 300000 90000 2000
6392711
7
0
100
7
7
2
102
700
.
Diego Passos (UFF)
Bases Numéricas
1
1
101
10
.
.
.
.
.
. . . .
. . . .
1
0
100
1
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
5 / 36
.
Bases Numéricas
O sistema arábico é um sistema de base 10 (decimal).
▶
▶
Há 10 algarismos.
A cada posição, corresponde um multiplicador que é uma potência de 10.
Mas nada impede que utilizemos outra base.
Por exemplo, podemos utilizar uma base k qualquer.
▶
▶
▶
▶
k símbolos possíveis para cada algarismo.
Cada símbolo corresponde a um valor de 0 a k − 1.
Cada posição corresponde a um multiplicador que é uma potência de k.
Para ler um número, multiplica-se o valor do símbolo pelo seu multiplicador posicional e
soma-se para todos os algarismos.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
6 / 36
.
Leitura de um Número em uma Base Numérica k: Exemplo
Número
Posição
Multiplicador
Valores
Total
Exemplo com n algarismos
αn−1
...
α2
α1
α0
n−1
...
2
1
0
(n−1)
2
1
k
...
k
k
k0
(n−1)
2
1
0
k
· αn−1 . . . k · α2 k · α1
k · α0
(n−1)
2
1
k
· αn−1 + . . . + k · α2 + k · α1 + k 0 · α0
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
7 / 36
.
Por que Estudar Bases Numéricas?
O que as bases numéricas tem a ver com arquiteturas de computadores?
Alguns computadores antigos representavam informação em base 10.
▶
Sua memória e processador manipulavam dados compostos por unidades de informação que
podiam assumir 9 estados diferentes.
Mas hoje, a unidade básica de informação de um computador é o bit.
▶
Pode assumir dois estados: 0 ou 1.
Por isso, é mais eficiente representar dados em base 2.
▶
▶
▶
Base binária.
Cada bit representa um algarismo na base 2.
Um conjunto ordenado de bits representa um número.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
8 / 36
.
Outras Bases
Além da base binária, nesta disciplina veremos outras bases numéricas.
▶
▶
Base 8 (octal).
Base 16 (hexadecimal).
Embora a base binária seja a mais importante, as bases octal e hexadecimal também são
muito usadas.
▶
▶
▶
“Agrupam” bits.
Proveem representação mais compacta.
Aparecem comumente em programação.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
9 / 36
.
A Base Binária
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
10 / 36
.
Algarismos e Multiplicadores Posicionais
A base binária possui dois algarismos (bits).
▶
0 e 1.
Assim como em qualquer outra base numérica, números são escritos dispondo-se algarismos
em posições sucessivas.
▶
Da direita para a esquerda.
Cada posição corresponde a um multiplicador posicional.
▶
▶
▶
▶
▶
Potências de 2.
20 = 1, para o algarismo mais à direita.
21 = 2, para o algarismo seguinte.
22 = 4, para o algarismo seguinte.
...
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
11 / 36
.
Exemplo de Números em Base 2
Exemplo com 5 algarismos (bits)
Número
1
0
1
0
0
Posição
4
3
2
1
0
4
3
2
1
Multiplicador 2
2
2
2
20
Valores
16 0
4
0
0
Total
16 + 0 + 4 + 0 + 0 = 20
Exemplo com 7 algarismos (bits)
Número
1
0
1
0
0
1
Posição
6
5
4
3
2
1
Multiplicador 26 25 24 23 22 21
Valores
64 0 16 0
0
2
Total
64 + 0 + 16 + 0 + 0 + 2 + 1
1
0
20
1
= 83
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
12 / 36
.
Potências (Não-Negativas) de 2
Nos exemplos anteriores, utilizamos várias potências de 2 para “entendermos” os números
em base binária.
Nesta disciplina, é útil decorar alguns destes valores para auxiliar na conversão de valores
binários para seus correspondentes decimais.
Potência
20
21
22
23
24
25
26
Valor
1
2
4
8
16
32
64
Potência
27
28
29
210
211
212
213
Valor
128
256
512
1024
2048
4096
8192
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
13 / 36
.
Distinguindo Números entre Bases Diferentes
Se escrevemos um número 638, ele claramente não está em base 2.
▶
Algarismos 6, 3 e 8 não existem nesta base.
Mas e se escrevemos o número 1010? Ele está em base 2 ou em base 10?
▶
▶
Os algarismos 0 e 1 existem tanto em uma base, quanto em outra.
Este número, portanto, é válido em ambas as bases.
A compreensão de um número escrito depende do conhecimento da base utilizada.
Por isso, em contextos em que números de várias bases podem ser usados, é preciso de
alguma notação para informar a base.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
14 / 36
.
Distinguindo Números entre Bases Diferentes (Mais)
A notação mais comum é a informar a base como um valor entre parêntesis, após o
número, usando fonte sub-escrita.
Exemplos:
▶
▶
▶
▶
▶
▶
17(10) = 10001(2) .
23(10) = 10111(2) .
54(10) = 110110(2) .
1010(2) = 10(10) .
101(2) = 5(10) .
1101011(2) = 107(10) .
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
15 / 36
.
Números Não-Inteiros
Até este ponto, discutimos apenas números inteiros.
▶
Números “sem vírgula”.
Mas números não-inteiros também são importantes.
▶
Computadores são frequentemente usados para manipulá-los
Além disso, bases diferentes da 10 também são capazes de representar números
não-inteiros.
▶
Possam existir certas limitações de representação em algumas bases.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
16 / 36
.
Representando Números Não-Inteiros em Base 10
Em base 10, números não-inteiros são representados com a adição de algarismos após a
vírgula.
Exemplos:
▶
▶
▶
145,36.
12,7865.
0,678.
A existência de uma parte fracionária não altera o funcionamento da notação posicional.
Continuamos entendendo cada posição como uma potência da base (no caso, 10).
A chave é o fato de que as potências à direita da vírgula são negativas.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
17 / 36
.
Representando Números Não-Inteiros em Base 10: Exemplos
Exemplo com 4
Número
Posição
Multiplicador
Valores
Total
algarismos (1 após a vírgula)
3
1
7
,
7
2
1
0
-1
102 101 100
10−1
300 10
7
0,7
300 + 10 + 7 + 0,7 = 317,7
Exemplo com 6 algarismos (2 após a vírgula)
Número
4
8
7
1
,
2
5
Posição
3
2
1
0
-1
-2
Multiplicador 103 102 101 100
10−1
10−2
Valores
4000 800 70
1
0,2
0,5
Total
4000 + 800 + 70 + 1 + 0,2 + 0,5 = 4871,25
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
18 / 36
.
Representando Números Não-Inteiros em Base 2
A mesma ideia se aplica à base 2.
▶
E a qualquer outra base numérica.
Utilizamos a vírgula como um separador.
A posição imediatamente à esquerda da vírgula é a 0.
A imediatamente à direita, é a -1.
Posições são incrementadas andando para a esquerda.
E decrementadas andando para a direita.
Cada posição corresponde a uma potência da base (no caso, 2).
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
19 / 36
.
Representando Números Não-Inteiros em Base 2: Exemplos
Exemplo com 4 algarismos (1 após a vírgula)
Número
1
0
1 ,
1
Posição
2
1
0
-1
Multiplicador 22 21 20
2−1
Valores
4
0
1
0,5
Total
4 + 0 + 1 + 0,5 = 5,5
Exemplo com 6 algarismos (2 após a vírgula)
Número
1
0
1
1 ,
1
1
Posição
3
2
1
0
-1
-2
Multiplicador 23 22 21 20
2−1
2−2
Valores
8
0
2
1
0,5
0,25
Total
8 + 0 + 2 + 1 + 0,5 + 0,25 = 11,75
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
20 / 36
.
Potências (Negativas) de 2
De forma análoga às potências positivas, conhecer potências negativas auxilia a entender
rapidamente números não-inteiros em base 2.
Potência
2−1
2−2
2−3
2−4
2−5
Valor
0,5
0,25
0,125
0,0625
0,03125
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
21 / 36
.
Propriedades de Números em Base 2
Multiplicação rápida por 2.
▶
▶
▶
Dado um número escrito em base 10, adicionar um 0 à direita multiplica por 10.
De forma análoga, em base 2, adicionar um zero à direita multiplica por 2.
Exemplos:
⋆
⋆
⋆
⋆
15(10) = 1111(2) e 30(10) = 11110(2) .
20(10) = 10100(2) e 40(10) = 101000(2) .
177(10) = 10110001(2) e 354(10) = 101100010(2) .
1,5(10) = 1,1(2) e 3(10) = 11(2) .
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
22 / 36
.
Propriedades de Números em Base 2 (II)
Divisão rápida por 2.
▶
▶
▶
Análoga à propriedade anterior.
Remoção de algarismos à direita divide por 2.
Exemplos:
⋆
⋆
⋆
⋆
46(10) = 101110(2) e 23(10) = 10111(2) .
100(10) = 1100100(2) e 50(10) = 110010(2) .
254(10) = 11111110(2) e 127(10) = 1111111(2) .
8,5(10) = 1000,1(2) e 4,25(10) = 100,01(2) .
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
23 / 36
.
Propriedades de Números em Base 2 (III)
Números pares e ímpares:
▶
▶
▶
Todo número par em base 2 tem o bit mais à direita igual a 0.
Todo número ímpar em base 2 tem o bit mais à direita igual a 1.
Consequência da propriedade de divisão.
⋆
⋆
Números pares divididos por 2 resultam em inteiros.
Números ímpares divididos por 2 resultam em números terminados em ,5(10) ou ,1(2) .
Exemplos:
▶
▶
▶
▶
86(10) = 1010110(2) é par.
75(10) = 1001011(2) é ímpar.
19(10) = 10011(2) é ímpar.
200(10) = 11001000(2) é par.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
24 / 36
.
Propriedades de Números em Base 2 (IV)
Números com representação infinita.
▶
▶
Há números reais que não podem ser representados em base 10 com um número finito de
algarismos.
Exemplos:
⋆
⋆
⋆
⋆
▶
▶
▶
1
= 0,3.
3
1
= 0,142857.
7
6
= 0,461538.
13
Números irracionais, como π, e,
√
2.
Números irracionais não possuem representação finita em nenhuma base.
Mas para números racionais, isso pode variar.
Exemplos:
⋆
⋆
1
= 0,2(10) = 0,0011
5
1
= 0,1(10) = 0,00011.
10
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
25 / 36
.
Propriedades de Números em Base 2 (V)
Números com representação infinita (continuação).
▶
Conclusão: há números com representação finita em base 10, cuja representação em base 2
é infinita.
▶
Mas todo número com representação finita em base 2, tem representação finita em base 10.
E todo número com representação infinita em base 10, tem representação infinita em base 2.
Como saber se um número racional tem representação finita em base 2?
⋆
▶
▶
⋆
⋆
⋆
▶
Relevante para discussão sobre ponto flutuante.
Coloque o número na forma de uma fração irredutível.
Se o denominador for uma potência de 2, a representação é finita.
Caso contrário, a representação é infinita.
Exemplos:
⋆
⋆
⋆
1
tem representação infinita.
9
5
tem representação infinita.
7
17
tem representação finita.
128
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
26 / 36
.
Número de Algarismos e Limites
Um byte tem 8 bits.
Qual o maior valor inteiro que podemos representar em um byte?
▶
▶
▶
▶
Em qualquer base, o maior número representável com uma determinada quantidade de
algarismos contém o maior algarismo disponível em todas as posições.
Na base 2, com 8 algarismos: 11111111( 2).
Em base 10, corresponde a: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.
De forma geral, com n bits, o maior número que podemos escrever é:
2n−1 + 2n−2 + . . . 20 = 2n − 1.
E quantos números diferentes podemos representar?
▶
▶
▶
Cada bit tem pode ter dois valores: 0 e 1.
Como são 8 bits, a quantidade de valores é: 2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 28 = 256.
Em geral, com n bits, podemos representar 2n valores.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
27 / 36
.
Número de Algarismos e Limites (II)
Note que cada número tem uma representação única em base 2.
▶
Na verdade, em qualquer base.
Logo, com 8 bits somos capazes de escrever todos os números de 0 a 255.
▶
No caso geral, com n bits, escrevemos todos os números de 0 a 2n − 1.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
28 / 36
.
As Bases Octal e Hexadecimal
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
29 / 36
.
A Base Octal: Algarismos e Multiplicadores
A base octal tem 8 algarismos possíveis.
▶
0, 1, 2, 3, 4, 5, 6 e 7.
Seus multiplicadores são potências de 8:
▶
▶
▶
▶
▶
80 = 1.
81 = 8.
82 = 64.
83 = 512
...
Assim como em qualquer outra base numérica, números em base 8 são escritos
combinando-se os valores dos algarismos com seus multiplicadores posicionais.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
30 / 36
.
A Base Octal: Exemplos
Exemplo com 3 algarismos
Número
1
2
3
Posição
2
1
0
2
1
Multiplicador 8
8
80
Valores
64 16
3
Total
64 + 16 + 3 = 83
Exemplo com 4 algarismos
Número
4
7
7
Posição
3
2
1
3
2
Multiplicador
8
8
81
Valores
2048 448 56
Total
2048 + 448 + 56 + 1
1
0
80
1
= 2553
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
31 / 36
.
A Base Hexadecimal: Algarismos
A base hexadecimal possui 16 algarismos diferentes:
▶
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.
Ao contrário das outras bases estudadas até então, a base 16 tem mais algarismos que a
base 10.
Por este motivo, é necessário adicionar 6 símbolos novos.
▶
Foram escolhidas as letras de A a F.
Os algarismos em comum com a base 10 possuem os mesmos valores.
Já os algarismos representados por letras assumem os valores 10, 11, 12, 13, 14, 15 (nesta
ordem).
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
32 / 36
.
A Base Hexadecimal: Valores dos Algarismos
Em resumo:
Algarismo (Base 16)
0
1
2
3
4
5
6
7
Valor (Base 10)
0
1
2
3
4
5
6
7
Algarismo (Base 16)
8
9
A
B
C
D
E
F
.
Diego Passos (UFF)
Bases Numéricas
Valor (Base 10)
8
9
10
11
12
13
14
15
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
33 / 36
.
A Base Hexadecimal: Exemplos
Exemplo com 2 algarismos
Número
E
7
Posição
1
0
1
Multiplicador 16
160
Valores
224
7
Total
224 + 7 = 231
Exemplo
Número
Posição
Multiplicador
Valores
Total
com 3 algarismos
1
A
7
2
1
0
2
1
16
16
160
256 160
7
256 + 160 + 7 = 423
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
34 / 36
.
A Base Hexadecimal e o Byte
Um byte pode representar qualquer valor de 0 a 255.
Esta é exatamente a faixa de valores representáveis por dois algarismos hexadecimais.
▶
▶
Do 00(16) = 0(10) .
Ao FF(16) = 255(10) .
Esta é uma das utilidades da base 16 na computação:
▶
▶
O valor de qualquer byte pode ser resumido em dois algarismos hexadecimais.
E dado um número de dois algarismos em base 16, certamente existe um valor correspondente
em 8 bits.
Como comparação, considere a base 10.
▶
▶
São necessários 3 algarismos para representar todos os valores possíveis de um byte.
Mas há valores de 3 algarismos decimais que não podem ser representados em um byte (e.g.,
256, 500, 999).
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
35 / 36
.
Números Não-Inteiros nas Bases 8 e 16
Assim como em qualquer outra base, podemos escrever números não inteiros nas bases 8 e
16.
Processo análogo ao visto nas bases 2 e 10.
▶
Adicionar algarismos após a vírgula, considerando potências negativas da base.
Fora do escopo da disciplina.
▶
Pouco utilizado em arquiteturas de computadores.
.
Diego Passos (UFF)
Bases Numéricas
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
36 / 36
.
Download