Capítulo UM Bases Numéricas 1 . 1 Introdução Quando o homem aprendeu a contar, ele foi obrigado a desenvolver símbolos que representassem as quantidades e grandezas que ele queria utilizar. Estes símbolos, os algarismos, constituem a base dos sistemas de numeração. Nos tempos pré-históricos o homem utilizou uma correspondência um-para-um entre os objetos a serem contados e os seus dedos, ou então para pedrinhas ou mesmo para “riscos”. Um sistema deste tipo seria um “sistema unário” (com um único símbolo): Os primeiros algarismos encontrados consistiam em marcas horizontais ou verticais (como as acima) com traços de ligação entre elas para definir as quantidades superiores a um. Os símbolos romanos básicos podem ser considerados como uma evolução do sistema acima. Os algarismos romanos são basicamente aditivos: assim, por exemplo, III = I + I + I. Para facilitar a representação de grandes quantidades, foram introduzidos símbolos especiais para grupos: I=1 V=5 X=10 L=50 C=100 D=500 M=1000 Além disto, utilizam-se uma série de regras (como por exemplo a posição relativa dos símbolos aos seus vizinhos), que permitiam interpretar estes símbolos e determinar qual o número que estava sendo representado: VI=5+1=6 CXVI=100+10+5+1=116 IV=5-1=4 MCMLIX=1000+(1000-100)+50+(10-1)=1959 A realização de cálculos com este sistema, especialmente para operações como multiplicação e divisão, era entretanto extremamente complexa e de aplicação praticamente impossível. Posteriormente, os árabes utilizaram-se de um sistema originário da Índia, que possuía 10 símbolos (0 a 9), com os seguintes símbolos (da esquerda para direita, 1234567890): Este sistema começou a ser utilizado na Europa no século 12, e é conhecido atualmente como sistema de numeração arábica (mas com outros algarismos), e se destaca pelas seguintes características: • existe um símbolo para o valor nulo. • cada algarismo utilizado é uma unidade maior que o seu predecessor. 1-1 • a notação é posicional, ou seja, o valor de um algarismo é determinado pela sua posição dentro do número. Cada posição possui um determinado peso. 1 . 2 Representação de números Os sistemas atuais formam os números pela fórmula a seguir, onde a representa o número propriamente dito, B representa a base do sistema de numeração (B≥2), x i representam os algarismos (0≤xi<B), e n representa o número de posições utilizadas. Com B=10 tem-se o sistema decimal. n Σ (xi.B i) a= i=–m O algarismo xi tem peso Bi, determinado pela sua posição. Para i com valores positivos, tem-se pesos maiores que a unidade; para i=0 tem-se exatamente o peso unitário (B0=1). Para valores negativos de i, tem-se pesos menores que a unidade (fracionários). Para o caso específico de números inteiros, utilizando-se n dígitos (ou “casas”), indexados de 0 até n–1, a fórmula fica: n-1 Σ (xi.B i) a= i=0 ou, por extenso, expandindo-se o somatório: a =xn-1.B n-1+xn-2.B n-2+. . . . +x 2.B 2+x1.B 1+x0.B 0 ou ainda, simplificando-se a expressão: a =xn-1.B n-1+xn-2.B n-2+. . . . +x 2.B 2+x1.B+x0 Para os sistemas de numeração utilizam-se as seguintes regras: • A base B de um sistema é igual à quantidade de algarismos distintos utilizados. Para a base decimal, tem-se 10 algarismos distintos (de 0 a 9). • Quando uma posição é ocupada pelo maior algarismo, e ela deve ser aumentada de uma unidade, então esta posição recebe o símbolo nulo e a posição seguinte deve ser aumentada de uma unidade. Assim, 9+1=10, 19+1=20, 99+1=100, 1999+1=2000. • O algarismo mais a direita (denominado de dígito menos significativo) tem peso um. O algarismo imediatamente a esquerda tem o peso da base B, o seguinte a esquerda tem peso de B ao quadrado, depois B ao cubo, e assim por diante. • O valor de cada algarismo de um número é determinado multiplicando-se o algarismo pelo peso de sua posição. • O valor de um número é determinado pela soma dos valores de cada algarismo. 1 . 3 Transformação entre bases Os computadores atuais utilizam internamente somente um sistema de numeração: o sistema binário (B=2), com os algarismos 0 e 1. Este sistema foi estudado profundamente pelo matemático alemão Leibniz, no século 17. Somente com o advento dos computadores eletrônicos digitais, entretanto, tal sistema começou a ser utilizado na prática. Atualmente, 1-2 todos os computadores utilizam internamente o sistema binário para armazenamento e manipulação de números e dados. O tratamento de números representados em outras bases ocorre através de rotinas de codificação e decodificação. O mesmo ocorre com símbolos alfanuméricos. 1 . 3 . 1 Método polinomial Como cada número pode ser representado por um polinômio em uma certa base, tudo o que se deve fazer para transformar um número de uma base para outra é interpretar este número como um polinômio utilizando-se aritmética da base de destino: 1100012=1.25+1.24+0.23+0.22+0.21+1.20=32+16+0+0+0+1=4910 1100012=1.25+1.24+0.23+0.22+0.21+1.20=408+208+0+0+0+1 8=618 Nos exemplos acima, simplesmente aplicou-se a fórmula: a = xn-1.B n-1+xn-2.B n-2+. . . . +x 2.B 2+x1.B+x0 onde B é a base de origem e a é o número resultante na base destino. Observe-se que todos os cálculos são realizados na aritmética da base de destino. 1 . 3 . 2 Método de subtrações Sabendo-se que um número em uma determinada base B é representado pela fórmula a =xn-1.B n-1+xn-2.B n-2+. . . . +x 2.B 2+x1.B+x0 a conversão para determinação dos coeficientes xi é iniciada da esquerda (xn-1) para a direita (até x0). Inicia-se determinando os valores de n (a quantidade de dígitos necessária) e de xn-1 (o dígito mais significativo). Para tanto procura-se o produto (na base origem) do maior coeficiente com a maior potência da nova base, que está contido no número a ser convertido, ou seja, procura-se o maior produto xn-1.B n-1 que seja menor (ou igual) que a. Este coeficiente xn-1 é o algarismo a ser utilizado na posição mais à esquerda (dígito mais significativo) do número na nova base. Subtrai-se este produto do número a ser convertido. Com isto tem-se: a ' = a – xn-1.B n-1 = xn-2.B n-2+. . . . +x 2.B 2+x1.B+x0 Para determinar-se o algarismo seguinte à direita (xn-2), repete-se o processo, usando agora a diferença do passo anterior (a') e a potência imediatamente inferior (se no passo anterior usou-se a potência Bi, utiliza-se agora Bi-1), e assim sucessivamente até todos os n dígitos terem sido determinados. Note-se que o resultado das diversas subtrações sempre deve ser positivo (ou zero). Se a subtração não for possível, isto indica que o coeficiente xi é zero. 681-1.29=681-512=169 169-1.27=169-128=41 41-1.25=41-32=9 9-1.23=9-8=1 1-0.21=1-0.2=1 169-0.28=169-0.256=169 41-0.26=41-0.64=41 9-0.24=9-0.16=9 1-0.22=1-0.4=1 1-1.20=1-1=0 Ou seja, o número final, em binário, é 1010101001. 1-3 Se o resultado de uma subtração produzir resultado zero, isto significa que todos os dígitos restantes são zero, como ilustrado no exemplo a seguir. 680-1.29=680-512=168 168-1.27=168-128=40 40-1.25=40-32=8 8-1.23=8-8=0 168-0.28=168-0.256=168 40-0.26=40-0.64=40 8-0.24=8-0.16=8 Os coeficientes restantes (x2, x 1 e x 0) são iguais a zeros, e o número final, em binário, é 1010101000. O método também se aplica para números com frações. Se não for possível chegar a zero após um certo número de posições, então interrompe-se o método após o número de casas desejado. 6,125-1.22=6,125-4=2,125 0,125-0.20=0,125-0.1=0,125 0,125-0.2-2=0,125-0.0,25=0,125 2,125-1.21=2,125-2=0,125 0,125-0.2-1=0,125-0.0,5=0,125 0,125-1.2-3=0,125-0,125=0 Ou seja, o número final é 110,001. O método também se aplica para outras bases. Seja a conversão de 6,8125 de decimal para octal: 6,8125-6.80=6,8125-6=0,8125 0,0625-4.8-2=0,0625-0,0625=0 0,8125-6.8-1=0,8125-0,7500=0,0625 Ou seja, 6,8125 10=6,648. Note-se que sempre se utiliza a aritmética da base de origem. 1 . 3 . 3 Método das divisões O número a ser convertido é dividido pela nova base (na aritmética da base de origem). O resto desta divisão forma o algarismo mais a direita (menos significativo) do número convertido. O quociente é novamente dividido, e assim sucessivamente, até o quociente final ser zero. A sequência de todos os restos forma o novo número. Note-se que ao dividir o número a pela base B obtém-se: a /B=(xn-1.B n-1+xn-2.B n-2+. . . . +x 2.B 2+x1.B+x0)/B ou seja a /B=xn-1.B n-2+xn-2.B n-3+. . . . +x 2.B 1+x1, com resto igual a x0 A divisão seguinte por B produz como resto x1, e assim sucessivamente até xn-1. 53÷2=26, resta 1 13÷2=6, resta 1 3÷2=1, resta 1 26÷2=13, resta 0 6÷2=3, resta 0 1÷2=0, resta 1 Número binário resultante: 110101 Para frações, o método se modifica um pouco: a fração é multiplicada pela nova base; a parte inteira resultante forma o algarismo mais à esquerda da nova fração e a parte fracionária é submetida novamente ao método, até o resultado ser zero (ou até atingir-se o número de dígitos significativos desejado). 1-4 Exemplo: 0,828125 . 2 = 1,65625 0,65625 . 2 = 1,3125 0,3125 . 2 = 0,625 0,625 . 2 = 1,25 0,25 . 2 = 0,5 0,5 . 2 = 1,0 Parte inteira = 1 Parte inteira = 1 Parte inteira = 0 Parte inteira = 1 Parte inteira = 0 Parte inteira = 1 Fração = 0,1 Fração = 0,11 Fração = 0,110 Fração = 0,1101 Fração = 0,11010 Fração = 0,110101 1 . 3 . 4 Método da substituição direta Este é o método mais fácil, entretanto funciona somente para bases que são potências inteiras entre si, como por exemplo de octal para binário (e vice-versa) ou de hexadecimal para binário (e vice-versa). Seja B1=B2m; para um determinado m inteiro, então tem-se as seguintes regras: • para converter de B1 (a maior base) para B2 (a menor base), cada algarismo de B1 é substituído por m algarismos equivalentes de B2: 5 1 78 = 101 001 1112 7 0 C16 = 0111 0000 11002 • para converter de B2 para B1, agrupam-se os algarismos em grupos de m, tomando-se a vírgula como referência, ou seja, formam-se grupos de m algarismos tanto para a esquerda da vírgula (parte inteira) como para a direita (parte fracionária). Cada grupo é então transformado no seu algarismo equivalente na nova base: 1110,01101 2 = 001 110 , 011 010 = 1 6 , 3 28 1110,01101 2 = 1110 , 0110 1000 = E , 6 816 Observe-se que este método também pode ser utilizado entre duas bases que não seja diretamente uma potência da outra, desde que ambas sejam potências inteiras de uma terceira base. Assim, por exemplo, pode-se converter da base octal para hexadecimal (usando-se a base 2 como terceira base). 1 . 4 Exercícios propostos 1. Converter para a base decimal os seguintes números: a) 1010102 b)10103 c) 10214 d) 10256 e) 21658 f) 1FA216 g) E1A16 h) 7078 2. Usando o método das divisões, converter os seguintes números decimais para a base indicada: a) 96 para a base ternária b) 96 para a base octal c) 258 para a base hexadecimal d) 258 para a base binária e) 49 para a base quaternária f) 57 para a base ternária 1-5 g) 56 para a base binária 3. Usando o método das subtrações, converter os seguintes números decimais para a base indicada: a) 96 para a base ternária b) 96 para a base octal c) 258 para a base hexadecimal d) 258 para a base binária e) 49 para a base quaternária f) 57 para a base ternária g) 56 para a base binária 4. Usando o método das substituições, converter os seguintes números para a base indicada: a) 1011000110102 para a base octal b) 1011000110102 para a base hexadecimal c) 001011001012 para a base octal d) 001011001012 para a base hexadecimal e) 3478 para a base binária f) 72418 para a base binária g) 3AF16 para a base binária h) 7E4B16 para a base binária 1-6