Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas de Numeração e Conversões entre bases Patrick Cesar Alves Terrematte UFERSA 26 de Janeiro de 2017 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 1 / 67 Agenda 1 Introdução 2 Base Binária Conversões de números decimais Conversões de números binários Operações Aritméticas Multiplicação Divisão 3 Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal 4 Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal 5 Aplicações dos sistemas 6 Generalização da conversão de bases PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 2 / 67 Agenda 1 Introdução 2 Base Binária Conversões de números decimais Conversões de números binários Operações Aritméticas Multiplicação Divisão 3 Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal 4 Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal 5 Aplicações dos sistemas 6 Generalização da conversão de bases PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 3 / 67 Objetivos Apresentar Sistemas de Numeração. Conhecer os sistemas de numeração binário, octal, decimal e hexadecimal; Ver as principais características de cada um dos sistemas de numeração; Aprender a converter um número entre as diversas bases numéricas. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 4 / 67 Objetivos Apresentar Sistemas de Numeração. Conhecer os sistemas de numeração binário, octal, decimal e hexadecimal; Ver as principais características de cada um dos sistemas de numeração; Aprender a converter um número entre as diversas bases numéricas. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 4 / 67 Objetivos Apresentar Sistemas de Numeração. Conhecer os sistemas de numeração binário, octal, decimal e hexadecimal; Ver as principais características de cada um dos sistemas de numeração; Aprender a converter um número entre as diversas bases numéricas. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 4 / 67 Objetivos Apresentar Sistemas de Numeração. Conhecer os sistemas de numeração binário, octal, decimal e hexadecimal; Ver as principais características de cada um dos sistemas de numeração; Aprender a converter um número entre as diversas bases numéricas. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 4 / 67 Sistemas de Numeração Um sistema de numeração, (ou sistema numeral) é um sistema em que um conjunto de números são representados por numerais de uma forma consistente. Uma base b disporá de b algarismos, variando entre 0 e b-1. Representação do número 15 10 em diferentes bases numéricas: Base 2: 1111 2 . Base 8: 17 8 . Base 10: 15 10 = 15. Base 16: F 16 . Pode-se ver que 10 10 6= 10 2 6= 10 16 . PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 5 / 67 Contagem de sistemas de numeração Para realizar a contagem em binário é importante o conceito de LSB (Least Significant Bit) e (Most Significant Bit). O LSB é o bit que se encontra mais à direita na palavra binária, enquanto que o MSB é o bit que se encontra mais à esquerda. Em binário: o LSB muda de valor a cada contagem; o segundo bit muda de valor a cada duas contagens; o terceiro bit muda de valor a cada quatro contagens; e assim em diante. Assim, a contagem em binário de 0 a 7 é escrita como: 000 001 010 011 100 101 110 111 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 6 / 67 Conversões: Relações entre bases numéricas Decimal Binário Octal Hexadecimal 0 0000 00 0 1 0001 01 1 2 0010 02 2 3 0011 03 3 4 0100 04 4 5 0101 05 5 6 0110 06 6 7 0111 07 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 7 / 67 Forma geral de um número em qualquer base N b = a b .bn+ ...+ a 2 .b2+ a 1 .b1+ a 0 .b0+ a−1.b−1+ a−2.b−2+ ...+ a−n.b−n (1) Nesta expressão, a n é o dígito do número em questão, b é a base do sistema de numeração, e n é a posição do dígito em relação à vírgula. A parte inteira é representada pelos algarismos com valor de n maior ou igual a 0. Os outros algarismos representam a parte fracionária do número. Representação de números com bases diferentes: 167, 5 10 = 1.102 + 6.101 + 7.100 + 5.10−1 = 100+ 60+ 7+ 0, 5 = 167, 5 10 1001, 101 2 = 1.23 + 0.22 + 0.21 + 1.20 + 1.2−1 + 0.2−2 + 1.2−3 = 8+ 1+ 0, 5+ 0, 125 = 9, 625 10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 8 / 67 Generalização O processo pode ser generalizado com a seguinte equação: k = n∑ i=0 (a i × bi ) + −1∑ j=−m (a j × bj ) Em que a i e a j representam os dígitos octais das posições i e j que estão sendo convertidos. A posição mais à direita, antes da vírgula, a menos significativa, é a posição 0. A posição mais à esquerda, antes da vírgula, a mais significativa, é a posição −1. n representa o número de dígitos antes da vírgula, enquanto m o número de dígitos depois da vírgula. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 9 / 67 Faixa de contagem Tabela: Quantidade de elementos que podem ser contados. N o de dígitos N o mínimo N o máximo N o que podem ser contados 1 0.100 = 0 10 9.100 = 9 10 10 2 0.101 + 0.100 = 0 10 9.101 + 9.100 = 99 10 100 3 0.102 + 0.101 + 0.100 = 0 10 9.102 + 9.101 + 9.100 = 999 10 1000 N 0 10 N − 1 10N Por exemplo, um número binário com N elementos permite contar 2 N números diferentes. Qual o número máximo que pode ser representado em um número binário que utiliza 3 bits? PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 10 / 67 Agenda 1 Introdução 2 Base Binária Conversões de números decimais Conversões de números binários Operações Aritméticas Multiplicação Divisão 3 Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal 4 Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal 5 Aplicações dos sistemas 6 Generalização da conversão de bases PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 11 / 67 Conversão de decimal para binário A técnica das divisões sucessivas consiste em dividir sucessivamente o valor em decimal por B (base para a qual se deseja converter), até que um quociente 0 seja encontrado. O resultado é a escrita inversa dos restos obtidos nas divisões. Como deseja-se converter para base binária, devem-se fazer divisões sucessivaspor 2. 23 2 1 11 2 1 5 2 1 2 2 0 1 2 1 0 23 10 = 10111 2 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 12 / 67 Conversão de decimal fracionário para binário Para converter 0, 4 10 , a parte fracionária deve-se multiplicá-la pelo valor da base que se deseja obter. O número restante à vírgula é o dígito procurado. Se for diferente de zero, ele é substituído por zero para a próxima multiplicação. A multiplicação é feita até que se obtenha 0 como resultado, ou até que a dízima estabelecida seja atingida. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 13 / 67 Conversão de binário para decimal k = n∑ i=0 (a i × bi ) + −1∑ j=−m (a j × bj) 11101 2 = 1.24 + 1.23 + 1.22 + 0.21 + 1.20 = 16+ 8+ 4+ 1 = 29 10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 14 / 67 Multiplicação binária Semelhante à operação em sistemas de numeração decimal. Dá-se por meio de produtos parciais entre os dígitos dos dois números sendo multiplicados. Os valores possíveis na multiplicação de dígitos binários, 0 e 1, são: x 0 1 0 0 0 1 0 1 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 15 / 67 Exemplo Um exemplo da multiplicação de dois números em base binária, 1011 2 e 1010 2 , pode ser visto abaixo: 1 1 0 1 1 (A) (11, na base decimal) 2 x 1 0 1 0 (B) (10, na base decimal) 3 4 0 0 0 0 ←− Produto pelo dígito 0 em B 5 + 1 0 1 1 ←− Produto pelo dígito 1 em B 6 + 0 0 0 0 7 + 1 0 1 1 8 9 = 1 1 0 1 1 1 0 (110, na base decimal) PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 16 / 67 Mutiplicação fracionária As mesmas diretrizes se aplicam à multiplicação de números binários com parte fracionária. Assim, em 101, 101 2 × 110, 01 2 1 1 0 1 , 1 0 1 (A) (5,625, na base decimal) 2 x 1 1 0 , 0 1 (B) (6,25, na base decimal) 3 4 1 , 0 1 1 0 1 ←− Produto pelo dígito 1 em B 5 + 0 0 , 0 0 0 0 ←− Produto pelo dígito 0 em B 6 + 0 0 0 , 0 0 0 7 + 1 0 1 1 , 0 1 8 + 1 0 1 1 0 , 1 9 10 = 1 0 0 0 1 1 , 0 0 1 0 1 (35,15625, na base decimal) PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 17 / 67 Divisão Binária Também segue os mesmos princípios da operação em sistemas de numeração decimal. O fato de ter apenas dois dígitos possíveis no sistema facilita o processo. O procedimento tem como resultados o quociente e o resto, a partir de um divisor e um dividendo. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 18 / 67 Exemplo Um exemplo da divisão de dois números em base binária, 11011 2 e 101 2 : 1 2 1 1 0 1 1 1 0 1 ←− Dividendo e Divisor (27 10 e 5 10 , respectivamente) 3 - 1 0 1 1 0 1 ←− Quociente (Equivalente a 5 10 ) 4 5 0 1 1 6 - 0 0 0 7 8 1 1 1 9 - 1 0 1 10 11 1 0 ←− Resto (Equivalente a 2 10 ) PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 19 / 67 Agenda 1 Introdução 2 Base Binária Conversões de números decimais Conversões de números binários Operações Aritméticas Multiplicação Divisão 3 Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal 4 Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal 5 Aplicações dos sistemas 6 Generalização da conversão de bases PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 20 / 67 Sistema de Numeração Octal Utiliza a base oito. Assim, possui oito dígitos possíveis: 0, 1, 2, 3, 4, 5, 6 e 7. Um número na base octal possui a seguinte representação: (...a 3 a 2 a 1 a 0 , a−1a−2a−3...)8 Em que a i pode ser qualquer valor entre 0 e 7, os dígitos possíveis nesta base. As posições mais significativas são as de maior índice, às mais à esquerda. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 21 / 67 Contagem na base octal Como o maior dígito nesta base é 7, na sua contagem uma posição e incrementada de 0 até 7. Uma vez que atinge 7, aquela posição deve voltar a 0 na próxima contagem e a posição de dígito seguinte mais significativa deve ser incrementada. Dois exemplos de sequências de contagem: 65, 66, 67, 70, 71... 275, 276, 277, 300, 301... Com n posições de dígitos octais pode-se contar até 8 n − 1, com um total de 8 n valores diferentes possíveis. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 22 / 67 Base octal para base decimal Em um número na base octal, cada dígito, de acordo com sua posição, incluindo a parte fracionária, possui a seguinte magnitude, em termos de potência de 8: ... 8 4 8 3 8 2 8 1 8 0 8 −1 8 −2 8 −3 8 −4 ... , O processo de conversão de um número octal para um em base decimal é direto, seguindo esta tabela. Basta multiplicar cada dígito pela respectiva magnitude de sua posição. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 23 / 67 Exemplos Assim, para os números 372 8 e 24, 6 8 , teríamos os seguintes equivalentes na base decimal: 372 8 = 3× (82) + 7× (81) + 2× (80) = 3× 64+ 7× 8+ 2× 1 = 250 10 24, 6 8 = 2× (81) + 4× (80) + 6× (8−1) = 2× 8+ 4× 1+ 6× 1 8 = 20, 75 10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 24 / 67 Generalização O processo pode ser generalizado com a seguinte equação: k = n∑ i=0 (a i × 8i ) + −1∑ j=m (a j × 8j ) Em que a i e a j representam os dígitos octais das posições i e j que estão sendo convertidos. A posição mais à direita, antes da vírgula, a menos significativa, é a posição 0. A posição mais à esquerda, antes da vírgula, a mais significativa, é a posição −1. n representa o número de dígitos antes da vírgula, enquanto m o número de dígitos depois da vírgula. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 25 / 67 Base decimal para base octal Utiliza-se o método de divisões sucessivas para a obtenção do equivalente octal de um número na base decimal. Segue-se o mesmo processo da conversão para a base binária, só que utilizando-se 8 como divisor, em vez de 2. Começando-se com o número sendo convertido, os quocientes das divisões serão divididos sucessivamente, até que atinja-se zero como resultado. Os restos destas divisões serão os dígitos que comporão o número na base octal. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 26 / 67 Conversão de decimal para octal Como deseja-se converter para base octal, devem-se fazer divisões sucessivas por 8. 223 8 7 27 8 3 3 8 3 0 223 10 = 337 8 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 27 / 67 Exemplos Tomando o número 266 10 , as divisões sucessivas têm a seguinte forma: 266/8 = 33 ∗ 8 + resto 2. (2) 33/8 = 4 ∗ 8 + resto 1. (3) 4/8 = 0 ∗ 8 + resto 4. (4) O resto da primeira divisão é o dígito menos significativo no número resultante. O resto seguinte é segundo menos significativo, e assim por diante. Portanto: 266 10 = 412 8 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 28 / 67 Generalização Este processo pode ser generalizado da seguinte forma: D 0 = d mod 8 D 1 = bd/8c mod 8 D2 = bbd/8c/8c mod 8 ... bxc é a operação piso: tem como resultado a parte inteira de x . d é o número na base 10 sendo convertido. D i é o i-ésimo dígito do número resultante � que será da forma (...D 3 D 2 D 1 D 0 ) 8 �, do menos significativo (i = 0) ao mais significativo. O método deve ser aplicado até que b...bbd/8c/8c.../8c = 0, representando que todos os dígitos do de d já foram considerados para a conversão. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 29 / 67 Conversão de octal para decimal Para a conversão de octal para decimal, deve-se utilizar a equação geral: 72 8 = 7.81 + 2.80 = 56+ 2 = 58 10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 30 / 67 Conversão de números fracionários Para converter números fracionários o processo é diferente. Utilizam-se multiplicações sucessivas: Multiplica-se exclusivamente a parte fracionária de número, repetidamente, por 8. Tomam-se as partes não fracionárias dos resultados como os dígitos da parte fracionária do número octal resultante. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 31 / 67 Exemplo Tomando o número 0, 1640625 10 , as multiplicações sucessivas têm a seguinte forma: 0, 1640625× 8 = 1, 3125 = 1+ 0, 3125 (1) 0, 3125× 8 = 2, 5 = 2+ 0, 5 (2) 0, 5× 8 = 4, 0 = 4+ 0 (3) As partes não fracionárias dos resultados das multiplicações compõe o número resultante, do dígito mais significativo ao menos significativo. Portanto: 0, 1640625 10 = 0, 124 8 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 32 / 67 Conversão de decimal para octal Para converter 223, 796 10 , a parte fracionária deve-se multiplicá-la pelo valor da base que se deseja obter. O número restante à vírgula é o dígito procurado. Se for diferente de zero, ele é substituído por zero para a próxima multiplicação. A multiplicação é feita até que se obtenha 0 como resultado, ou até que a dízima estabelecida seja atingida. 223 8 7 27 8 3 3 8 3 0 0, 796 10 x 8 6,368 0, 368 10 x 8 2,944 0, 944 10 x 8 7,952 0, 952 10 x 8 4,416 223, 796 10 = 337, 6274 8 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 33 / 67 Generalização Este processo pode ser generalizado da seguinte forma: D−1 = bd f × 8c D−2 = b{d f × 8} × 8c D−3 = b{{d f × 8} × 8} × 8c ... {x} denota xmod 1 = x − bxc: a operação tem como resultado, exclusivamente, a parte fracionária de x . d f é a parte fracionária do número na base 10 sendo convertido D j é o j-ésimo dígito do número resultante � que sera da forma (0,D−1D−2D−3...)16 �, do mais significativo (j = −1) ao menos significativo. O processo deve parar ao se atingir b{...{{d f × 8} × 8}...× 8} = 0. Representação finita não e garantida. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 34 / 67 Conversão da base octal para a base binária Uma das vantagens do sistema octal é a simplicidade de conversão com a base binária. Basta converter cada digito octal para o seu equivalente na base binária, utilizando-se três dígitos. O sistema é fixo, seguindo a tabela: Dígito Octal 0 1 2 3 4 5 6 7 Equivalente binário 000 001 010 011 100 101 110 111 È possível converter qualquer número na base octal para a base binária através da troca, individual, de cada dígito octal pelo seu equivalente. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 35 / 67 Exemplo O processo é exemplificado abaixo para o número 472 8 , cujo equivalente binário é 100111010 2 : 4 7 2 ↓ ↓ ↓ 100 111 010 O mesmo princípio é utilizado para a conversão da parte fracionária de um número na base octal. Assim, para 325, 67 8 , teríamos: 3 2 5 , 6 7 ↓ ↓ ↓ ↓ ↓ 011 010 101 , 110 111 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 36 / 67 Conversão da base binária para base octal É o processo reverso do apresentado anteriormente. Os dígitos binários são agrupados em grupos três a três e convertidos para seus equivalentes octais. A mesma tabela é utilizada. Assim, para o número 100111010 2 , teríamos o seguinte equivalente octal: 1 0 0︸ ︷︷ ︸ 1 1 1︸ ︷︷ ︸ 0 1 0︸ ︷︷ ︸ ↓ ↓ ↓ 4 7 2 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 37 / 67 Conversão da base binária para base octal Quando o número na base binária não tem dígitos suficientes para realizar os agrupamentos três-a-três, basta acrescentar zeros à esquerda do dígito mais significativo. Assim sem alterar o número sendo convertido, até ter-se a quantidade suficiente para realizar os agrupamentos. Este procedimento pode ser visto abaixo, para o número 11010110 2 , completado com zeros para realizar-se a conversão: 0 1 1︸ ︷︷ ︸ 0 1 0︸ ︷︷ ︸ 1 1 0︸ ︷︷ ︸ ↓ ↓ ↓ 3 2 6 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 38 / 67 Conversão da base binária para base octal O processo para se obter o equivalente da parte fracionária segue o mesmo princípio. Tome, por exemplo, 11100, 01001 2 , com o seguinte equivalente octal: 0 1 1︸ ︷︷ ︸ 1 0 0︸ ︷︷ ︸ , 0 1 0︸ ︷︷ ︸ 0 1 0︸ ︷︷ ︸ ↓ ↓ ↓ ↓ 3 4 , 2 2 Observe-se que no caso da parte fracionária há também a necessidade de se utilizar de zeros extras para se realizar os agrupamentos. A diferença é que estes devem ser postos à direita do dígito menos significativo, afim de não alterar o valor que está sendo convertido. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 39 / 67 Exercícios - conversão de octal Realize as seguintes conversões: 1 5 8 = _____ 10 2 23 8 = _____ 16 3 1000 8 = _____ 2 4 7710 8 = _____ 2 5 10 8 = _____ 2 6 1001 8 = _____ 2 7 201 8 = _____ 10 8 777 8 = _____ 10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 40 / 67 Agenda 1 Introdução 2 Base Binária Conversões de números decimais Conversões de números binários Operações Aritméticas Multiplicação Divisão 3 Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal 4 Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal 5 Aplicações dos sistemas 6 Generalização da conversão de bases PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 41 / 67 Sistema de Numeração Hexadecimal Utiliza a base dezesseis. Assim, possui dezesseis dígitos possíveis, sendo estes os de 0 a 9 mais as letras A, B, C, D, E e F. Um número na base hexadecimal possui a seguinte representação: (...a 3 a 2 a 1 a 0 , a−1a−2a−3...)16 Em que a i pode ser qualquer valor entre os dezesseis dígitos possíveis em um número hexadecimal. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 42 / 67 Sistema de Numeração Hexadecimal Na tabela abaixo podemos ver as correspondências entre os dígitos hexadecimais e números nas bases decimal, binária e octal. Hexadecimal Decimal Octal Binário 0 0 0 0000 1 1 1 0001 2 2 2 0010 3 3 3 0011 4 4 4 0100 5 5 5 0101 6 6 6 0110 7 7 7 0111 8 8 10 1000 9 9 11 1001 A 10 12 1010 B 11 13 1011 C 12 14 1100 D 13 15 1101 E 14 16 1110 F 15 17 1111 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeirode 2017 43 / 67 Contagem na base hexadecimal A contagem em hexadecimal leva cada posição de dígito, incrementalmente, de 0 até F. Um novo incremento deve retornar esta a 0, aumentando uma unidade na posição seguinte mais significativa. As duas sequências de contagem a seguir demonstram este processo: 38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40, 41... 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700... Perceba-se que quando o 9 é dígito em determinada posição, ele é substituído por A quando incrementado. Com n posições de dígitos octais pode-se contar até 16 n − 1, com um total de 16 n valores diferentes possíveis. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 44 / 67 Conversão de decimal para hexadecimal 637 16 13 39 16 7 2 16 2 0 63710 = 27D 16 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 45 / 67 Conversão da base hexadecimal para a base decimal Cada posição de dígito hexadecimal possui uma magnitude associada em termos de potência de 16, de acordo com a tabela: ... 16 4 16 3 16 2 16 1 16 0 16 −1 16 −2 16 −3 16 −4 ... , O processo de conversão de um número octal para um em base decimal é direto, seguindo esta tabela. Basta multiplicar cada dígito pela respectiva magnitude de sua posição. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 46 / 67 Exemplos Assim, para o número 3A4C 16 , obteríamos os seus equivalentes na base decimal de acordo com o seguinte processo: 3A4C 16 = 3× 163 + 10× 162 + 4× 161 + 12× 160 (1) = 4096+ 320+ 64+ 12 (2) = 4492 10 (3) Para o número 1FB,A9D 16 , com parte fracionária, teríamos: 1FB,A9D 16 = 1× 162 + 15× 161 + 11× 160 + 10× 16−1 + 9× 16−2 + 13× 16−3 (1) = 64+ 240+ 11+ 10× 1 16 + 9× 1 64 + 13× 1 4096 (2) = 315, 769 10 (3) PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 47 / 67 Generalização O processo pode ser generalizado de acordo com a equação: k = n∑ i=0 (a i × 16i ) + −1∑ j=m (a j × 16j ) Em que a i e a j representam os dígitos hexadecimais das posições i e j que estão sendo convertidos. A posição mais à direita, antes da vírgula, a menos significativa, é a posição 0. A posição mais à esquerda, antes da vírgula, a mais significativa, é a posição −1. n representa o número de dígitos antes da vírgula, enquanto m o número de dígitos depois da vírgula. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 48 / 67 Conversão da base decimal para a base hexadecimal Os métodos de divisões sucessivas (parte inteira) e multiplicações sucessivas (parte fracionária) são também utilizados para a conversão para a base hexadecimal. A aplicação difere por utilizar 16 como divisor e como multiplicador, para o primeiro e o segundo, respectivamente. Assim, teríamos, para os número 456 10 e 0, 03125 1 0: 456/16 = 28 + resto 8. (1) 28/16 = 1 + resto 12. (2) 1/16 = 0 + resto 1. (3) 456 10 = 1C8 16 0, 03125 1 0× 16 = 0, 5 = 0+ 0, 5 (1) 0, 5× 16 = 8 = 8+ 0 (2) 0, 03125 10 = 0, 08 16 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 49 / 67 Generalização A mesma fórmula representa a generalização do processo para a base hexadecimal. D 0 = d mod 16 D 1 = bd/16c mod 16 D 2 = bbd/16c/16c mod 16 ... D−1 = bd f × 16c D−2 = b{d f × 16} × 16c D−3 = b{{d f × 16} × 16} × 16c ... O número resultante em base decimal é da seguinte forma: (D n D n−1...D2D1D0 , D−1D−2...D−m)10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 50 / 67 Conversão da base hexadecimal para a base binária Conversão, como na base octal, dá-se pela equivalência de dígitos. Seguindo a tabela mostrada anteriormente, então, podemos fazer a conversão do número 9F2.A8 16 para seu equivalente binário da seguinte maneira: 9 F 2 , A 8 ↓ ↓ ↓ ↓ ↓ 1001 1111 0010 , 1010 1000 Assim, 9F2,A8 16 = 100111110010, 10101000 2 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 51 / 67 Conversão da base binária para a base hexadecimal Aplica-se processo equivalente, como na base octal, mas com agrupamentos de quatro dígitos. Se necessário, zeros devem ser acrescentados à esquerda, ou direita, do dígito mais significativo, ou do menos, possibilitando os agrupamento com quatro dígitos. A posição de inserção do zero dependerá de se tratar da parte fracionária ou não do número binário, respectivamente. O processo é exemplificado com a conversão de 1110100110, 10 2 para seu equivalente hexadecimal: 0 0 1 1︸ ︷︷ ︸ 1 0 1 0︸ ︷︷ ︸ 0 1 1 0︸ ︷︷ ︸ , 1 0 0 0︸ ︷︷ ︸ ↓ ↓ ↓ ↓ 3 A 6 , 8 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 52 / 67 Conversão de octal para hexadecimal 7225 8 = 7︸︷︷︸ 2︸︷︷︸ 2︸︷︷︸ 5︸︷︷︸ 111 010 010 101 7225 8 = 111010010101 2 111010010101 2 = 1110︸︷︷︸ 1001︸︷︷︸ 0101︸︷︷︸ E 9 5 7225 8 = E95 16 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 53 / 67 Conversão de hexadecimal para octal O número hexadecimal é convertido para binário, e de binário para octal. 1A25 16 = 1︸︷︷︸ A︸︷︷︸ 2︸︷︷︸ 5︸︷︷︸ 0001 1010 0010 0101 1A25 16 = 0001101000100101 2 0001101000100101 2 = 000︸︷︷︸ 001︸︷︷︸ 101︸︷︷︸ 000︸︷︷︸ 100︸︷︷︸ 101︸︷︷︸ 0 1 5 0 4 5 1A25 16 = 15045 8 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 54 / 67 Conversão de hexadecimal para decimal Para a conversão de hexadecimal para decimal, deve-se utilizar a equação geral. FC2 16 = F .162 + C .161 + 2.160 = 3840+ 192+ 2 = 4034 10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 55 / 67 Exercícios - conversão de hexadecimal Realize as seguintes conversões: 1 10 16 = _____ 2 2 1001 16 = _____ 2 3 AF12 16 = _____ 2 4 3524E 16 = _____ 10 5 EF 16 = _____ 10 6 189F 16 = _____ 10 7 3524E 16 = _____ 8 8 EF 16 = _____ 8 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 56 / 67 Agenda 1 Introdução 2 Base Binária Conversões de números decimais Conversões de números binários Operações Aritméticas Multiplicação Divisão 3 Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal 4 Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal 5 Aplicações dos sistemas 6 Generalização da conversão de bases PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 57 / 67 Aplicações Os sistemas octais e hexadecimal são muito utilizados para uma representação compacta de sequências de bits. Menos sujeitos a erros ao manipular-se números com grande quantidade de bits. Conversão muito simples entre binários e octais ou hexadecimais. Código ASCII: �Ei, socorro!� =⇒ Bin Oct Dec Hex E 100 0101 105 69 45 i 110 1001 151 105 69 , 010 1100 54 44 2C (espaço) 010 0000 40 32 20 s 111 0011 163 115 73 o 110 1111 157 111 6F c 110 0011 143 99 63 o 110 1111 157 111 6F r 111 0010 162 114 72 r 111 0010 162 114 72 o 110 1111 157 111 6F ! 010 0001 41 33 21 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 58 / 67 Agenda 1 Introdução 2 BaseBinária Conversões de números decimais Conversões de números binários Operações Aritméticas Multiplicação Divisão 3 Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal 4 Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal 5 Aplicações dos sistemas 6 Generalização da conversão de bases PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 59 / 67 Generalização da conversão de bases Dessa forma, podemos generalizar a conversão de números entre suas representações em diferentes bases. A partir de uma base b para uma base B , utilizando a aritmética de B : k B = n∑ i=0 (a i × bi ) + −1∑ j=m (a j × bj ) Utilizando a aritmética de b: D 0 = d mod b D 1 = bd/bc mod b D 2 = bbd/bc/bc mod b ... D−1 = bd f × bc D−2 = b{d f × b} × bc D−3 = b{{d f × 3} × b} × bc ... (D n D n−1...D2D1D0 , D−1D−2...D−m) B PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 60 / 67 Exemplo Convertendo 44 5 para seu equivalente na base 7, utilizando aritmética desta base: k 7 = 4 7 × 50 + 4 7 × 51 = 4 7 + 26 7 = 33 7 Converter 1524 6 para a base 4, utilizando a aritmética da base 4. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 61 / 67 Resumo Sistemas de numeração são sistemas nos quais os conjuntos de números são representados de uma forma sempre constante. O sistema binário, ou sistema de base 2, é aquele no qual só são utilizados dois dígitos: 0 e 1. Este sistema é muito utilizado em computadores. Um bit é o valor de um dígito binário. Um conjunto de 8 bits é um byte. Os sistemas octal e hexadecimal são sistemas em potência de binário, nos quais o número de algarismos utilizados para representar um mesmo valor se reduz. O sistema octal possui oito dígitos: 0, 1, 2, 3, 4, 5, 6 e 7. O sistema hexadecimal possui dezesseis dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. Para representar a base de um número é utilizada a seguinte convenção: Base 2: 10 2 , Base 8: 10 8 , Base 10: 10 10 = 10, Base 16: 10 16 = 10 H = 10 h A contagem em diferentes sistemas de numeração é diferente. Por isso, um número com os mesmos algarismos mas em bases diferentes, não equivale ao mesmo valor. PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 62 / 67 Questões 1 Qual o número máximo que pode ser representado em um número binário que utiliza 3 bits? 2 Um conjunto de 4 bytes contém quantos bits? 3 Qual o maior número decimal que pode ser representado com 4 bytes? 4 Realize as seguintes conversões entre bases: 100, 1 2 = _____ 16 1A,FF 16 = _____ 2 45, 101 10 = _____ 2 5, 43 8 = _____ 10 23, 11 8 = _____ 16 10, 101 2 = _____ 8 268, 19 10 = _____ 16 189F ,A 16 = _____ 10 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 63 / 67 Exercícios - conversão de decimal Realize as seguintes conversões: 1 10 10 = _____ 2 2 1001 10 = _____ 2 3 45 10 = _____ 2 4 5 10 = _____ 8 5 23 10 = _____ 8 6 201 10 = _____ 8 7 268 10 = _____ 16 8 45 10 = _____ 16 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 64 / 67 Exercícios - conversão de binário Realize as seguintes conversões: 1 101 2 = _____ 10 2 100 2 = _____ 10 3 1010 2 = _____ 10 4 101 2 = _____ 8 5 10101 2 = _____ 8 6 10011 2 = _____ 8 7 101 2 = _____ 16 8 1111 2 = _____ 16 PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 65 / 67 Referências http://www.raymundodeoliveira.eng.br/binario.html PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 66 / 67 Dúvidas? PatrickTerrematte (UFERSA) Sistemas de Numeração 26 de Janeiro de 2017 67 / 67 Introdução Base Binária Conversões de números decimais Conversões de números binários Operações Aritméticas Base Octal Conversão da base octal para a base decimal Conversão da base decimal para a base octal Conversão da base octal para a base binária Conversão da base binária para a base octal Base Hexadecimal Conversão da base hexadecimal para a base decimal Conversão da base decimal para a base hexadecimal Conversão da base hexadecimal para a base binária Conversão da base binária para a base hexadecimal Aplicações dos sistemas Generalização da conversão de bases
Compartilhar