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 ie, mesmo símbolo representa valores diferentes dependendo da sua posição eg, 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, 10 0, 10 1, 10 2, 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 7 Posição 4 3 2 1 0 Multiplicador 10 4 10 3 10 2 10 1 10 0 Valores 10000 4000 300 60 7 Total 14367 Exemplo com 7 algarismos Número 6 3 9 2 7 1 1 Posição 6 5 4 3 2 1 0 Multiplicador 10 6 10 5 10 4 10 3 10 2 10 1 10 0 Valores 6000000 300000 90000 2000 700 10 1 Total 6392711 Diego Passos (UFF) Bases Numéricas 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 Exemplo com n algarismos Número α n 1 α 2 α 1 α 0 Posição n 1 2 1 0 Multiplicador k (n 1) k 2 k 1 k 0 Valores k (n 1) α n 1 k 2 α 2 k 1 α 1 k 0 α 0 Total k (n 1) α n 1 + + k 2 α 2 + k 1 α 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 2 0 = 1, para o algarismo mais à direita 2 1 = 2, para o algarismo seguinte 2 2 = 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 Multiplicador 2 4 2 3 2 2 2 1 2 0 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 1 Posição 6 5 4 3 2 1 0 Multiplicador 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Valores 64 0 16 0 0 2 1 Total 64 + 0 + 16 + 0 + 0 + 2 + 1 = 83 Diego Passos (UFF) Bases Numéricas FAC 12 / 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 algarismos (1 após a vírgula) Número 3 1 7, 7 Posição 2 1 0-1 Multiplicador 10 2 10 1 10 0 10 1 Valores 300 10 7 0,7 Total 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 10 3 10 2 10 1 10 0 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 2 2 2 1 2 0 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 2 3 2 2 2 1 2 0 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 Valor 2 1 0,5 2 2 0,25 2 3 0,125 2 4 0,0625 2 5 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 5 (10) = 0,0011 1 = 0,1 10 (10) = 0,00011 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 Relevante para discussão sobre ponto flutuante 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? 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 tem representação finita 17 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 é: 2 n 1 + 2 n 2 + 2 0 = 2 n 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 = 2 8 = 256 Em geral, com n bits, podemos representar 2 n 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 2 n 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: 8 0 = 1 8 1 = 8 8 2 = 64 8 3 = 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 Multiplicador 8 2 8 1 8 0 Valores 64 16 3 Total 64 + 16 + 3 = 83 Exemplo com 4 algarismos Número 4 7 7 1 Posição 3 2 1 0 Multiplicador 8 3 8 2 8 1 8 0 Valores 2048 448 56 1 Total 2048 + 448 + 56 + 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) Valor (Base 10) Algarismo (Base 16) Valor (Base 10) 0 0 8 8 1 1 9 9 2 2 A 10 3 3 B 11 4 4 C 12 5 5 D 13 6 6 E 14 7 7 F 15 Diego Passos (UFF) Bases Numéricas FAC 33 / 36
A Base Hexadecimal: Exemplos Exemplo com 2 algarismos Número E 7 Posição 1 0 Multiplicador 16 1 16 0 Valores 224 7 Total 224 + 7 = 231 Exemplo com 3 algarismos Número 1 A 7 Posição 2 1 0 Multiplicador 16 2 16 1 16 0 Valores 256 160 7 Total 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 (eg, 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