Numeração Decimal, Binária e Hexadecimal Texto introdutório destinado a programadores iniciantes Márcio A. Siena Engenharia de Sistemas e Software Maio de 2015 Sumário Introdução ............................................................................................................................................ 3 Sobre o autor .................................................................................................................................... 3 1 Conceitos iniciais ........................................................................................................................... 4 1.1 Adição .................................................................................................................................... 4 1.2 Multiplicação ......................................................................................................................... 4 1.3 Potenciação ........................................................................................................................... 4 1.3.1 Exercícios de fixação ......................................................................................................... 5 1.3.2 Respostas .......................................................................................................................... 6 1.4 Número, numeral e algarismo ............................................................................................... 6 1.4.1 Número ............................................................................................................................. 6 1.4.2 Numeral ............................................................................................................................ 6 1.4.3 Algarismo .......................................................................................................................... 7 2 Sistema de numeração decimal..................................................................................................... 8 2.1.1 Exercícios de fixação ......................................................................................................... 9 2.1.2 Respostas .......................................................................................................................... 9 3 Sistema de numeração binário ...................................................................................................... 9 3.1.1 Exercícios de fixação ....................................................................................................... 10 3.1.2 Respostas ........................................................................................................................ 10 4 Sistema de numeração hexadecimal ........................................................................................... 10 4.1.1 Exercícios de fixação ....................................................................................................... 12 4.1.2 Respostas ........................................................................................................................ 12 5 6 Mudança de base ........................................................................................................................ 12 5.1 Mudança de base com a calculadora do Microsoft Windows............................................. 12 5.2 Mudança de base manual ................................................................................................... 14 Referências bibliográficas ............................................................................................................ 16 Numeração Decimal, Binária e Hexadecimal Página 3 Introdução Este texto objetiva dar ao estudante uma introdução suave, de caráter elementar, aos sistemas de numeração utilizados em diversas áreas de ciência e de tecnologia, em especial, na programação dos modernos computadores digitais. Procuramos, primeiramente, transmitir conceitos fundamentais a respeito de números, para, somente então, iniciar o ensino de bases de numeração. Cada tópico, quando oportuno, é seguido por exercícios de fixação, cujas respostas encontram-se logo após os mesmos. E, embora a matemática seja bastante simples, procuramos, também aqui, reduzir o jargão técnico ao mínimo necessário. Caso você, estudante, deseje aprofundar seus conhecimentos, por gentileza, veja as Referências bibliográficas. Sobre o autor Márcio Aparecido Siena é consultor em desenvolvimento de software. Atua nesse ramo desde o início da década de 1980, tendo realizado trabalhos nos mais diversos setores, como indústria, comércio, setor público, militar etc., e com os públicos mais variados: estudantes, empresários, profissionais de tecnologia de informação e de desenvolvimento de software, profissionais do conhecimento (white collars), profissionais operacionais (blue collars) etc. Atua, também, na consultoria, desenvolvimento e aplicação de treinamentos especializados e personalizados, principalmente para o público corporativo (empresas, órgãos públicos, instituições educacionais, entre outros). Esses treinamentos incluem, mas não se limitam a: sistemas operacionais Microsoft Windows (Server, Client e Mobile), Linux, FreeBSD, PalmOS, OS/390, OS/400 e diversas variantes do Unix; plataformas de desenvolvimento de software, em especial Lua, Java, Microsoft.NET, PHP e Python; softwares para usuários finais (business intelligence, principalmente); bases de dados (produtos e metodologias); gestão de projetos; gestão de conhecimento em tecnologia. Pode ser contatado por meio de seu web site, www.masiena.com.br, ou por meio de um dos endereços eletrônicos: [email protected] ou [email protected]. Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 4 1 Conceitos iniciais Abordaremos, primeiramente, alguns conceitos elementares que são indispensáveis ao entendimento das diversas bases de numeração que estudaremos mais adiante. É imperativo que o estudante entenda esses conceitos antes de prosseguir. Alguns deles o aluno já domina, com certeza. Porém, foram aqui inseridos para que você tenha a oportunidade de recordar os nomes que lhes são dados em matemática. 1.1 Adição A adição é a operação aritmética mais fundamental, é a reunião de quantidades. 3 + 19 = 22 5,4 + 2,8 = 8,2 Figura 1 - Adição Em uma adição, como a primeira da Figura 1, temos: as parcelas 3 e 19, que representam os números que queremos somar; o sinal de adição, +; o resultado da adição, 22, chamado de soma ou de total. 1.2 Multiplicação Uma multiplicação é uma adição com parcelas iguais. Veja: 5 x 4 = 5 + 5 + 5 + 5 = 20 12,1 x 3 = 12,1 + 12,1 + 12,1 = 36,3 Figura 2 - Multiplicação Na Figura 2, multiplicar 5 por 4 significa somar o número 5 quatro vezes. Multiplicar 12,1 por três significa somar o número 12,1 três vezes. Na multiplicação, temos: os fatores, como o 5 e o 4, que representam os números sendo multiplicados; o sinal de multiplicação, x. Também é comum adotar-se como sinal de multiplicação o ponto (.) e, especialmente em programação de computadores, o asterisco (*); o resultado da multiplicação, chamado de produto. Na Figura 2, os produtos são 20 e 36,3. 1.3 Potenciação Uma potenciação é uma multiplicação com fatores iguais. Veja: 25 = 2 . 2 . 2 . 2 . 2 = 32 34 = 3 . 3 . 3 . 3 = 81 Figura 3 - Potenciação Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 5 Na Figura 3, estamos elevando 2 à quinta potência, o que significa multiplicar cinco fatores 2. No mesmo exemplo, estamos elevando 3 à quarta potência, o que significa fazer uma multiplicação com quatro fatores 3. Na potenciação, temos: a base, como o 2 no exemplo, que representa o fator que queremos multiplicar por si mesmo; o expoente, como o 5 no exemplo, que representa o número de vezes que queremos multiplicar a base; o resultado da potenciação, chamado de potência. Na Figura 3, o número 32 é o resultado da primeira potenciação. Algumas informações importantes a respeito da potenciação: quando elevamos um número a zero, como em 30, o resultado é sempre 1. Isso acontece porque é o resultado da divisão de duas potências com a mesma base e com o mesmo expoente, ou seja, um número dividido por si mesmo. Veja o exemplo: 34 ÷ 34 = 1. Usando a regra de divisão de potências, temos: 34 ÷ 34 = 34-4 = 30 = 1; quando elevamos um número a 1, como em 31, o resultado é sempre o próprio número (a base). Nesse exemplo, seria o próprio 3; quando elevamos um número a dois, como em 32, dizemos que estamos elevando esse número ao quadrado; quando elevamos um número a três, como em 73, dizemos que estamos elevando esse número ao cubo; quando elevamos um número a quatro, cinco, seis etc., como em 24, 25 e 26, dizemos que estamos elevando esse número à quarta potência, à quinta potência, à sexta potência, e assim por diante; o número 1, elevado a qualquer número, é igual a 1: 10 = 11 = 12 = ... = 1 1.3.1 Exercícios de fixação 1. Seguindo o exemplo, escreva em forma de potência: a) 5 . 5 . 5 = 53 _________ b) 2 . 2 . 2 . 2 . 2 = __________ c) 7 . 7 = __________________ d) 8 . 8 . 8 . 8 = _____________ 2. Seguindo o exemplo, escreva em forma de produto: a) 53 = 5 . 5 . 5 ___ b) 25 = ______________ c) 82 = ______________ d) 196 = _____________ 3. Seguindo o exemplo, calcule o valor das potências: a) 53 = 5 . 5 . 5 = 125 b) 24 = _________________ Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 6 c) 36 = _________________ d) 70 = _________________ e) 1453 = _______________ f) 124 = ________________ g) 10485761 = _____________ h) 10485760 = _____________ i) 01000000000 = ______________ 1.3.2 Respostas 1. b) 25 c) 72 d) 84 2. b) 2 . 2 . 2 . 2 . 2 c) 8 . 8 d) 19 . 19 . 19 . 19 . 19 . 19 3. b) 16 c) 729 d) 1 e) 1 f) 20736 g) 1048576 h) 1 i) 0 1.4 Número, numeral e algarismo Estes três conceitos, número, numeral e algarismo, são o fundamento para que possamos entender os sistemas de numeração explicados mais adiante. Comecemos pelo conceito de número. 1.4.1 Número Número é a ideia, a noção de quantidade que nos vem à cabeça quando contamos, quando comparamos ou quando ordenamos algo. Um exemplo anedótico: Se fossem colocados à sua frente dois montes de cédulas de dinheiro, todas de mesmo valor, e lhe fosse dito, “Escolha um, e apenas um. O dinheiro do monte escolhido será seu”, o que você faria? Normalmente, você procuraria comparar o tamanho dos montes – visualmente, pelo volume, ou pegando e contando as cédulas, ou comparando suas alturas e diâmetros – e escolheria o que lhe parecesse maior. Veja que, nesse simples exemplo, vimos diversas ocorrências da ideia de quantidade. 1.4.2 Numeral No entanto, quase sempre temos que expressar, de maneira oral ou escrita, essas ideias de quantidade, ou números, com os quais lidamos em nosso dia a dia, seja para transmiti-las aos outros, seja para o nosso próprio uso. O que usamos para expressar o número, ou a ideia de quantidade, é o numeral. Na anedota acima, se após você escolher seu monte de dinheiro, lhe fosse pedido que escrevesse quanto dinheiro nele havia, como você faria? Alguns exemplos: um mil e setecentos reais; R$ 1.700,00; MDCC. No primeiro caso, escrevemos o valor por extenso. No segundo caso, usamos algarismos indoarábicos conhecidos (0, 1, 2 etc.). No terceiro caso, usamos algarismos romanos. Em todos eles, lançamos a mão de símbolos que representam a ideia de quantidade que queremos transmitir. Portanto, numeral é a representação, escrita ou falada, de um número. Do acima exposto, podemos concluir que não existem números decimais, existem numerais Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 7 decimais; não existem números romanos, existem numerais romanos; não existem números binários, existem numerais binários (como veremos) etc. 1.4.3 Algarismo Algarismo é o sinal gráfico que usamos para formar os numerais escritos. No exemplo acima, usamos 1.700,00 (algarismos indo-arábicos) e MDCC (algarismos romanos). Poderíamos ter usado algarismos do Egito antigo (há pelo menos quatro sistemas diferentes conhecidos), ou mesmo “tracinhos verticais”. Nesse caso, desenharíamos 1700 tracinhos verticais: Figura 4 – “tracinhos” usados como numerais Atualmente, os sistemas de numeração mais utilizados servem-se dos algarismos indo-arábicos, a saber: 0 1 2 3 4 5 6 7 8 9 Figura 5 – Algarismos indo-arábicos Um segundo exemplo, tirado do filme “Predator”, de 1987 (exibido no Brasil com o título “Predador”): Nessa trama havia uma raça de criaturas extraterrestres cujo passatempo era caçar. Uma dessas criaturas veio praticar caça em uma floresta da América Central e acabou se defrontando com uma equipe militar americana de elite. A criatura possuía armas bem avançadas, mas o interessante aqui é que portava uma minibomba, nuclear, que era ativada caso a criatura se encontrasse em situação de captura ou de quase morte. O objetivo era não deixar vestígio de sua existência. Havia um timer, com contagem regressiva, ativado pela criatura para armar a bomba. A Figura 6 mostra esse timer, e os algarismos alienígenas que aparecem em seu painel de controle. Podemos observar que existem sinais (em vermelho) para nós desconhecidos: Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 8 Figura 6 – Timer da minibomba atômica1 do Predador Independentemente de os conhecermos ou não, esses sinais representam uma quantidade de tempo a ser decorrido entre a ativação do timer e a explosão da bomba. A despeito do sistema de numeração utilizado (decimal, romano ou, nesse caso, “Predadorês”), a quantidade de tempo é a mesma, apenas a sua representação, ou seja, os numerais usados, mudam. 2 Sistema de numeração decimal O sistema de numeração decimal que utilizamos tem esse nome porque utiliza como base de contagem o número 10, ou grupos de 10. Utiliza os algarismos indo-arábicos vistos anteriormente. Para entendê-lo, veja o exemplo do numeral 124.088. O que cada um desses algarismos significa? Veja a seguinte ilustração, onde o numeral é decomposto em partes, e essas são multiplicadas por potências de 10: é o resultado (a) Potência de 10 105=100.000isso acontece 104=10.000porque 103=1.000 102=100da divisão 101=10 de 100=1 (b) Algarismo do numeral (valor absoluto) 1 4 base e com 0 8 8 duas potências2com a mesma o mesmo (axb) Valor relativo 100.000 4.000 a regra0de divisão 80 de 8 expoente: 7320.000 ÷ 73 = 1. Usando 100.000 + 20.000 + 4.000 + 0 + 80 + 8 = 124.088 potências, temos: 73 ÷ 73 = 73-3 = 70 = 1 Figura 7 – representação do decimal 124.088 Na linha (a) da figura, notamos as potências de 10. Da direita para a esquerda, a primeira potência de 10 é 100 (que vale 1), a segunda é 101 (que vale 10), a terceira é 102 (que vale 100), e assim sucessivamente. Como temos 6 algarismos decimais, elevamos a base 10 aos expoentes 0, 1, 2, 3, 4 e 5. Cada potência de 10 é multiplicada pelo algarismo correspondente em nosso número (b). O resultado da multiplicação é mostrado na linha (axb). Se somarmos os produtos de cada multiplicação, chegamos ao nosso numeral original, 124.088. Perceba o seguinte: cada algarismo tem seu valor absoluto. 1 vale 1, 2 vale 2 etc. Esse valor é o da linha (b) na Figura 7; cada algarismo tem seu valor relativo dentro do numeral, que é o produto de seu valor absoluto multiplicado pela potência de 10 correspondente, exibido na linha (axb); 1 Fonte (20/5/2015): https://forums.robertsspaceindustries.com/discussion/197192/headshotting-woundedsoldiers-execution-style-is-this-a-mechanic-we-want-in-the-game/p17 Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 9 deslocar um algarismo para a esquerda significa multiplicar seu valor relativo por 10. Veja o exemplo do primeiro e do segundo algarismos 8, da direita para a esquerda; inversamente, deslocar um algarismo para a direita significa dividir seu valor relativo por 10. Um outro exemplo, agora com o numeral 12.789: (a) Potência de 10 104=10.000 103=1.000 (b) Algarismo do numeral (valor absoluto) 1 2 (axb) Valor relativo 10.000 2.000 10.000 + 2.000 + 700 + 80 + 9 = 12.789 Figura 8 – representação do decimal 12.789 102=100 7 700 101=10 8 80 100=1 9 9 2.1.1 Exercícios de fixação 1. Seguindo o exemplo, escreva em forma de potência de 10: a) 1027 = 1x103 + 0x102 + 2x101 + 2x100 = 1000+0+20+7 b) 29 = ______________ c) 7 = _______________ d) 12.504 = __________ 2.1.2 Respostas 1. b) 2x101 + 9x100 = 20+9 c) 7x100 = 7 d) 1x104 + 2x103 + 5x102 + 0x101 + 4x100 = 10.000+2.000+500+0+4 3 Sistema de numeração binário O sistema de numeração binário usa como base de contagem o número 2. Seu funcionamento é idêntico ao do sistema decimal, exceto que: utiliza apenas os algarismos 0 e 1; os valores absolutos são multiplicados por potências de 2, e não por potências de 10. Veja a seguinte ilustração, onde o numeral binário 101101 é decomposto em partes. Esse numeral representa que número, em base 10? (a) Potência de 2 (b) Algarismo do numeral (valor absoluto) (axb) Valor relativo 25=32 24=16 1 0 32 0 32 + 0 + 8 + 4 + 0 + 1 = 45 Figura 9 – representação do binário 101101 23=8 1 8 22=4 1 4 21=2 0 0 20=1 1 1 Na linha (a) da figura ficam as potências de 2. Da direita para a esquerda, temos 20 (1), 21 (2), 22 (4), e assim por diante. Como temos seis algarismos binários, elevamos a base 2 aos expoentes 0, 1, 2, 3, 4 e 5. Temos que: Márcio A. Siena cada algarismo tem seu valor absoluto. 0 vale 0 e 1 vale 1 (linha (b)); cada algarismo tem seu valor relativo dentro do numeral, que é o produto de seu valor absoluto multiplicado pela potência de 2 correspondente (linha (axb)); Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 10 deslocar um algarismo para a esquerda significa multiplicar seu valor relativo por 2; inversamente, deslocar um algarismo para a direita significa dividir seu valor relativo por 2. IMPORTANTE: O numeral 101101 (base 2) corresponde ao mesmo número, ou seja, tem o mesmo valor, que o numeral 45 (base 10). Estamos aplicando, aqui, os conhecimentos adquiridos no tópico “1.4 Número, numeral e algarismo”. 3.1.1 Exercícios de fixação 1. Seguindo o exemplo, escreva em forma de potência de 2, dando, em seguida, o numeral decimal correspondente: a) 1101 = 1x23 + 1x22 + 0x21 + 1x20 = 8+4+0+1 = 13 b) 10 = _______________________________________ c) 1 = ________________________________________ d) 0 = ________________________________________ e) 11001001 = _________________________________ f) 1000000000000000 = _________________________ 3.1.2 Respostas 2. b) 1x21 + 0x20 = 2+0 = 2 c) 1x20 = 1 d) 0x20 = 0 e) 1x27 + 1x26 + 1x23 + 1x20 = 128+64+8+1 = 201 (ignoramos as multiplicações por zero) f) 1x215 = 32.768 (ignoramos as multiplicações por zero) 4 Sistema de numeração hexadecimal O sistema de numeração hexadecimal usa como base de contagem o número 16. Seu funcionamento é idêntico ao do sistema decimal. Aqui, surge uma questão que costuma desorientar o estudante. Portanto, vamos, antes de mais nada, resolvê-la: quais os algarismos que usamos? Veja: no sistema decimal, usamos os algarismos 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. O algarismo de maior valor absoluto, 9, corresponde à base de numeração, menos 1, ou seja, 10-1=9 (veja a nota 2 no fim da página); no sistema binário, usamos os algarismos de 0 e 1. O algarismo de maior valor absoluto, 1, corresponde à base de numeração, menos 1, ou seja, 2-1=1; da mesma forma, no sistema hexadecimal, o algarismo de maior valor absoluto seria 15, pois 16-1=15. Assim, nossos algarismos hexadecimais seriam 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 19, 11, 12, 13, 14 e 15. No entanto, trabalhar com algarismos cujo desenho envolve mais de um sinal, como o 14, que tem os sinais “1” e “4”, seria complicado. Se você observar como os algarismos indo-arábicos de 0 a 9 são desenhados, perceberá que são simples combinações de retas e curvas. Isso aconteceu naturalmente em seu desenvolvimento, permitindo uma escrita rápida com sinais descomplicados e claros. Imagine se, ao invés de 2 A matemática do por que isso acontece, para nós, é irrelevante. No entanto, veja as referências bibliográficas, caso deseje se aprofundar no assunto. Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 11 traços simples, cada algarismo fosse, por exemplo, o desenho de um animal conhecido: 0 1 2 3 4 5 6 7 8 9 Figura 10 – Algarismos indo-arábicos, em um universo alternativo... Imagine escrever o numeral 18.995 usando essa notação. Tente, o veja o quanto demora. Então, para facilitar a escrita e o entendimento de numerais em base 16, convencionou-se que os algarismos de 10 a 15 seriam representados pelas primeiras letras do alfabeto latino. Assim, usamos a seguinte relação: Algarismo Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Algarismo hexadecimal correspondente 0 1 2 3 4 5 6 7 8 9 A B C D E F Figura 11 – Algarismos decimais e correspondentes hexadecimais No sistema hexadecimal: utilizamos os algarismos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F; os valores absolutos são multiplicados por potências de 16, e não por potências de 10. Veja a seguinte ilustração, onde o numeral hexadecimal 102AC4 é decomposto em partes. Esse numeral representa que número, em base 10? (a) Potência de 2 165=1.048.576 164=65.536 163=4.096 (b) Algarismo do numeral (valor absoluto) 1 0 2 (axb) Valor relativo 1.048.576 0 8.192 1.048.576 + 0 + 8.192 + 2.560 + 192 + 4 = 1.059.524 Figura 12 – representação do hexadecimal 102AC4 162=256 A 2.560 161=16 C 192 160=1 4 4 Na linha (a) da figura, ficam as potências de 16. Da direita para a esquerda, temos 160 (1), 161 (16), 16 (256), e assim por diante. Como temos seis algarismos hexadecimais, elevamos a base 16 aos expoentes 0, 1, 2, 3, 4 e 5. 2 Temos que: Márcio A. Siena cada algarismo tem seu valor absoluto. 0 vale 0, 1 vale 1 etc. (linha (b)); cada algarismo tem seu valor relativo dentro do numeral, que é o produto de seu valor absoluto multiplicado pela potência de 16 correspondente (linha (axb)); deslocar um algarismo para a esquerda significa multiplicar seu valor relativo por 16; Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 12 inversamente, deslocar um algarismo para a direita significa dividir seu valor relativo por 16. IMPORTANTE: Novamente, o numeral 102AC4 (base 16) corresponde ao mesmo número, ou seja, tem o mesmo valor, que o numeral 1.059.524 (base 10). 4.1.1 Exercícios de fixação 1. Seguindo o exemplo, escreva em forma de potência de 2, dando, em seguida, o numeral decimal correspondente: a) 1101 = 1x23 + 1x22 + 0x21 + 1x20 = 8+4+0+1 = 13 b) 10 = _______________________________________ c) 1 = ________________________________________ d) 0 = ________________________________________ e) 11001001 = _________________________________ f) 1000000000000000 = _________________________ 4.1.2 Respostas 3. b) 1x21 + 0x20 = 2+0 = 2 c) 1x20 = 1 d) 0x20 = 0 e) 1x27 + 1x26 + 1x23 + 1x20 = 128+64+8+1 = 201 (ignoramos as multiplicações por zero) f) 1x215 = 32.768 (ignoramos as multiplicações por zero) 5 Mudança de base Em aplicações de programação de computadores, de eletrônica e outras, é comum trabalharmos com bases diferentes da decimal. Trabalhamos, principalmente, com as bases 2, 8 e 16. Assim, precisamos ser capazes de converter numerais de uma base para outra. O primeiro tipo de conversão, de outras bases, como a 2 e a 16, para decimal, você já aprendeu nos tópicos anteriores. Basta multiplicar os valores absolutos dos algarismos pelas potências de 2 ou de 16 e somar os produtos resultantes. O resultado é o numeral decimal correspondente. O segundo tipo de conversão, de decimal para outras bases, veremos agora. Apresentaremos duas maneiras, uma usando a calculadora do Microsoft Windows, e outra, fazendo a conversão manualmente. A primeira, usando a calculadora do Microsoft Windows, é uma maneira de você conferir as conversões que você aprenderá a fazer manualmente. 5.1 Mudança de base com a calculadora do Microsoft Windows A calculadora é bem simples. Siga os seguintes passos: Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal 1. Execute a calculadora. 2. Use o modo programador. Use a combinação de teclas Windows+R para abrir o diálogo “Executar”: Digite CALC.EXE e clique “OK”. Opcionalmente, se sua versão do Microsoft Windows tem o botão Iniciar, vá em “Todos os Programas”, “Acessórios”. Lá está o atalho para a calculadora. Na calculadora, vá ao menu “Exibir” e escolha “Programador”. 3. Digite o numeral na base 10. Selecione a base 10 e digite seu numeral. Por exemplo, 12504. 4. Selecione a base desejada. Selecione a base desejada (Hex para hexadecimal, Bin para binário). O valor convertido será exibido no visor. Márcio A. Siena Página 13 Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal 5. Fique atento para o funcionamento da calculadora. Página 14 Repare que, conforme mudamos a base selecionada, apenas os algarismos válidos para aquela base ficam disponíveis. 5.2 Mudança de base manual A mudança de base manual é bastante simples. Usamos o método das divisões sucessivas: 1. fazemos a divisão inteira do numeral decimal pela base desejada; 2. se o quociente da divisão for maior ou igual à base, repetimos a operação, dividindo esse quociente pela base; 3. repetimos o passo acima enquanto o quociente encontrado na última divisão for maior ou igual à base; 4. quando a divisão não for mais possível, pegamos o último quociente e os restos das divisões anteriores, em ordem inversa. Esse é o numeral desejado. Eis uma ilustração do processo. Vamos converter o numeral decimal 14.178 para a base 16: 14.178 16 2 886 886 16 6 55 55 16 7 3 Dividimos 14.178 por 16. Obtemos o quociente 886 e o resto 2. Como 886 é maior que a base, 16, fazemos sua divisão por 16. Obtemos o quociente 55 e o resto 6. Como 55 é maior que a base, 16, fazemos sua divisão por 16. Obtemos o quociente 3 e o resto 7. O quociente 3 é menor que 16. Aqui, paramos as divisões. Tomamos o último quociente, 3, e todos os restos, em ordem inversa. Esse é o numeral hexadecimal correspondente a 14.178: 3762 Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 15 Um segundo exemplo. Vamos converter o numeral decimal 968.674 para a base 16: 968.674 16 2 60.542 60.542 16 14 3.783 3.783 16 7 236 236 16 12 14 Quociente: 60.542. Resto: 2. O quociente ainda é divisível por 16. Quociente: 3.783. Resto: 14. O quociente ainda é divisível por 16. Quociente: 236. Resto: 7. O quociente ainda é divisível por 16. Quociente: 14. Resto: 12. O quociente não é divisível por 16. O quociente 14 é menor que 16. Aqui, paramos as divisões. Tomamos o último quociente, 14, e todos os restos, em ordem inversa. Esse é o numeral hexadecimal correspondente a 14.178: EC7E2 Um último exemplo. Vamos converter o numeral decimal 1.148 para a base 2: 1.148 2 0 574 574 2 0 287 287 2 1 143 143 2 1 71 71 2 1 35 35 2 1 17 17 2 1 8 8 2 0 4 4 2 0 2 2 2 0 1 Quociente: 574. Resto: 0. O quociente ainda é divisível por 2. Quociente: 287. Resto: 0. O quociente ainda é divisível por 2. Quociente: 143. Resto: 1. O quociente ainda é divisível por 2. Quociente: 71. Resto: 1. O quociente ainda é divisível por 2. Quociente: 35. Resto: 1. O quociente ainda é divisível por 2. Quociente: 17. Resto: 1. O quociente ainda é divisível por 2. Quociente: 8. Resto: 1. O quociente ainda é divisível por 2. Quociente: 4. Resto: 0. O quociente ainda é divisível por 2. Quociente: 2. Resto: 0. O quociente ainda é divisível por 2. Quociente: 1. Resto: 0. O quociente não é divisível por 2. O quociente 1 é menor que 2. Aqui, paramos as divisões. Tomamos o último quociente, 1, e todos os restos, em ordem inversa. Esse é o numeral binário correspondente a 1.148: 100 0111 1100 Como se vê, depois de adquirida alguma prática, o processo torna-se bastante natural. Para numerais hexadecimais, é comum, em programação de computadores, o uso do prefixo “0x” Márcio A. Siena Engenharia de Sistemas e Software Numeração Decimal, Binária e Hexadecimal Página 16 para indicar a base 16. Por exemplo, os numerais hexadecimais encontrados nos exemplos acima ficariam 0x3762 e 0xEC7E2. Para numerais binários, em geral indica-se a base 2 usando o subscrito “(2)” após o numeral. Por exemplo, 10001111100(2). Uma outra notação, parecida com a hexadecimal, é a utilização do prefixo “0b”. Nesse caso, nosso numeral ficaria 0b10001111100. Essa segunda notação, atualmente, é menos utilizada. Para finalizar, é importante salientar que podemos converter um numeral decimal para qualquer base desejada utilizando o processo descrito, desde que saibamos quais são os algarismos utilizados na base de destino. 6 Referências bibliográficas Citamos, aqui, algumas obras consultadas para a confecção deste texto, bem como outras que podem ser de interesse para o estudante. BONJORNO, Regina Azenha. Falando de matemática: 5ª. Série. São Paulo: IBEP, 1992. Esse livro, em seu início, cobre satisfatoriamente o assunto de numerais, números e bases de numeração. MAXFIELD, Clive; BROWN, Alvin. The definitive guide to how computers do math. Hoboken, New Jersey: Wiley, 2005. Conteúdo extremamente instrutivo para programadores de todos os níveis. JONES, Gareth A.; JONES, J. Mary. Elementary number theory. Hoboken, London: Springer-Verlag, 1998. Livro excelente, de conteúdo técnico médio para avançado, a respeito da teoria dos números. Márcio A. Siena Engenharia de Sistemas e Software