Baixe o app para aproveitar ainda mais
Prévia do material em texto
■ ■ Os números são representados no sistema decimal, mas os computadores utilizam o sistema binário. Embora empreguem símbolos distintos, os dois sistemas formam números a partir das mesmas regras e podem ser facilmente convertidos entre si. De fato, os números podem ser representados em qualquer base maior ou igual a dois, e essas representações podem ser facilmente convertidas de uma frase para outra. Os principais métodos de conversão, baseados em aritmética decimal, são apresentados neste capítulo. bases numéricas capítulo 1 Weber_01.indd 1Weber_01.indd 1 18/04/12 14:3318/04/12 14:33 2 Fundamentos de Arquitetura de Computadores 1.1 introdução Quando o homem aprendeu a contar, ele foi obrigado a desenvolver símbolos que repre- sentassem as quantidades e grandezas que ele queria utilizar. Esses 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 obje- tos 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 mostradas) 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 desse sistema. 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 disso, havia uma série de regras (como a posição relativa dos símbolos aos seus vizi- nhos), que permitiam interpretar estes símbolos e determinar 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 extremamente complexa e de aplicação praticamente impossível. Posteriormen- te, os árabes utilizaram um sistema originário da Índia, que possuía 10 algarismos (0 a 9), com os seguintes símbolos (da esquerda para a direita, 1234567890): Weber_01.indd 2Weber_01.indd 2 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 3 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), destacando-se pelas seguintes características: ■ existe um símbolo para o valor nulo. ■ cada algarismo utilizado é uma unidade maior que o seu predecessor. ■ 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, em que a representa o número propriamente dito, B, a base do sistema de numeração (B≥2), xi, os algarismos (0≤xi<B), e o intervalo de –m a n–1, o número de posições utilizadas. Com B=10 tem-se o sistema decimal. O algarismo xi tem peso B i, 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 espe- cífico de números inteiros, utilizando-se n dígitos (ou “casas”), indexados de 0 (dígito menos significativo) até n–1 (dígito mais significativo), a fórmula fica: ou, por extenso, expandindo-se o somatório: a = xn–1.B n-1 + xn–2.B n–2 + . . . . + x2.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 + . . . . + x2.B 2 + x1.B + x0 Weber_01.indd 3Weber_01.indd 3 18/04/12 14:3318/04/12 14:33 4 Fundamentos de Arquitetura de Computadores 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 dez algarismos distintos (de 0 a 9). ■ quando uma posição é ocupada pelo maior algarismo e ela deve ser aumentada de uma unidade, 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 à direita (denominado de dígito menos significativo) tem peso um. O al- garismo imediatamente à esquerda tem o peso da base B, o seguinte à 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 mate- má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, todos os computadores usam 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 por meio 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 a aritmética da base de destino: 1100012 = 1.2 5 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 = 32 + 16 + 0 + 0 + 0 + 1 = 4910 1100012 = 1.2 5 + 1.24 + 0.23 + 0.22 + 0.21 + 1.20 = 408 + 208 + 0 + 0 + 0 + 18 = 618 Nesses exemplos, simplesmente foi aplicada a fórmula: a = xn–1.B n-1 + xn–2.B n–2 + . . . . + x2.B 2 + x1.B + x0 em que B é a base de origem, e a, o número resultante na base de destino. Observe que todos os cálculos são realizados na aritmética da base de destino. Weber_01.indd 4Weber_01.indd 4 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 5 1.3.2 método de subtrações Sabendo que um número em uma determinada base B é representado pela fórmula a = xn–1.B n–1 + xn–2.B n–2+ . . . . + x2.B 2 + x1.B + x0 a conversão para a 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 de origem) do maior coeficiente pela 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 isso tem-se: a’ = a – xn–1.B n–1 = xn–2.B n–2 + . . . . + x2.B 2 + x1.B + x0 Para determinar o algarismo seguinte à direita (xn–2), repete-se o processo, usando agora a di- ferenç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 que o resultado das diversas subtrações sempre deve ser positivo (ou zero). Se a subtração não for possível, isso indica que o coeficiente xi é zero. Para converter o número decimal 681 para binário, por exemplo, tem-se os seguintes cálculos: 681 – 1.29 = 681 – 512 = 169 169 – 0.28 = 169 – 0.256 = 169 169 – 1.27 = 169 – 128 = 41 41 – 0.26 = 41 – 0.64 = 41 41 – 1.25 = 41 – 32 = 9 9 – 0.24 = 9 – 0.16 = 9 9 – 1.23 = 9 – 8 = 1 1 – 0.22 = 1 – 0.4 = 1 1 – 0.21 = 1 – 0.2 = 1 1 – 1.20 = 1 – 1 = 0 Ou seja,o número final, em binário, é 1010101001. Se o resultado de uma subtração produzir resultado zero, isso significa que todos os dígitos restantes são zero, como no exemplo a seguir. 680 – 1.29 = 680 – 512 = 168 168 – 0.28 = 168 – 0.256 = 168 168 – 1.27 = 168 – 128 = 40 40 – 0.26 = 40 – 0.64 = 40 40 – 1.25 = 40 – 32 = 8 8 – 0.24 = 8 – 0.16 = 8 8 – 1.23 = 8 – 8 = 0 Weber_01.indd 5Weber_01.indd 5 18/04/12 14:3318/04/12 14:33 6 Fundamentos de Arquitetura de Computadores Os coeficientes restantes (x2, x1 e x0) são iguais a zero, 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, interrompe-se o método após obter-se o número de casas desejado. 6,125 – 1.22 = 6,125 – 4 = 2,125 2,125 – 1.21 = 2,125 – 2 = 0,125 0,125 – 0.20 = 0,125 – 0.1 = 0,125 0,125 – 0.2 – 1 = 0,125 – 0.0,5 = 0,125 0,125 – 0.2 – 2 = 0,125 – 0.0,25 = 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,8125 – 6.8 – 1 = 0,8125 – 0,7500 = 0,0625 0,0625 – 4.8 – 2 = 0,0625 – 0,0625 = 0 Ou seja, 6,812510=6,648. Note 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 res- to desta divisão forma o algarismo mais à direita (menos significativo) do número convertido. O quociente é novamente dividido, e assim sucessivamente, até o resto ser zero. A sequência de todos os restos forma o novo número. Note 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 + . . . . + x2.B 2 + x1.B + x0)/B ou seja a /B = xn–1.B n–2 + xn–2.B n–3 + . . . . + x2.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 26 ÷ 2 = 13, resta 0 13 ÷ 2 = 6, resta 1 6 ÷ 2 = 3, resta 0 3 ÷ 2 = 1, resta 1 1 ÷ 2 = 0, resta 1 Weber_01.indd 6Weber_01.indd 6 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 7 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). Exemplo: 0,828125 . 2 = 1,65625 Parte inteira = 1 Fração = 0,1 0,65625 . 2 = 1,3125 Parte inteira = 1 Fração = 0,11 0,3125 . 2 = 0,625 Parte inteira = 0 Fração = 0,110 0,625 . 2 = 1,25 Parte inteira = 1 Fração = 0,1101 0,25 . 2 = 0,5 Parte inteira = 0 Fração = 0,11010 0,5 . 2 = 1,0 Parte inteira = 1 Fração = 0,110101 1.3.4 método da substituição direta Este é o método mais fácil, mas funciona somente para bases que são potências inteiras entre si, 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, tem-se as seguintes regras: ■ para converter de B1 (a maior base) para B2 (a menor base), cada algarismo de B1 é subs- tituí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 trans- formado no seu algarismo equivalente na nova base: 1110,011012 = 001 110 , 011 010 = 1 6 , 3 28 1110,011012 = 1110 , 0110 1000 = E , 6 816 Observe que este método também pode ser utilizado entre duas bases que não sejam dire- tamente 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 a base 2 como terceira base). Weber_01.indd 7Weber_01.indd 7 18/04/12 14:3318/04/12 14:33 8 Fundamentos de Arquitetura de Computadores ■ exercícios propostos 1. Converter para a base decimal os seguintes números: a) 1010102 e) 21658 b) 10103 f) 1FA216 c) 10214 g) E1A16 d) 10256 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 e) 49 para a base quaternária b) 96 para a base octal f) 57 para a base ternária c) 258 para a base hexadecimal g) 56 para a base binária d) 258 para a base binária h) 56 para a base hexadecimal 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 e) 49 para a base quaternária b) 96 para a base octal f) 57 para a base ternária c) 258 para a base hexadecimal g) 56 para a base binária d) 258 para a base binária h) 56 para a base hexadecimal 4. Usando o método das substituições, converter os seguintes números para a base indi- cada: 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 5. Qual é o valor decimal de 011011012? Qual é a representação binária de 654? 6. Converter para binário os seguintes números decimais: a) 39 c) 256,75 b) 0,4475 d) 129,5625 7. Converter para decimal os seguintes números binários: a) 01101 c) 0111011,1011 b) 0,001101 d) 010110011 Weber_01.indd 8Weber_01.indd 8 18/04/12 14:3318/04/12 14:33 Capítulo 1 Bases Numéricas 9 8. Converter os seguintes números hexadecimais em decimais: a) B6C7 b) D2763 c) 9,1A 9. Converter os seguintes números octais em binário: a) 56 c) 231,2 b) 32,234 d) 3364 10. Converter os seguintes números hexadecimais em binários: a) AB2 c) 649 b) 12,A d) 0,D19 11. Converter os seguintes números binários em hexadecimais: a) 010110111 b) 011110,01011 c) 01110100010101 Termos-chave conversão de frações, p. 6 conversão direta, p. 6 conversão polinomial, p. 4 conversão por divisões, p. 5 conversão por subtrações, p. 5 representação polinomial, p. 4 sistema de numeração arábica, p. 3 Weber_01.indd 9Weber_01.indd 9 18/04/12 14:3318/04/12 14:33
Compartilhar