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 .