Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>ARQUITETURA E ORGANIZAÇÃO</p><p>DE COMPUTADORES</p><p>Olá!</p><p>Um sistema numeral é uma representação de números usando símbolos</p><p>específicos. A mesma sequência de símbolos pode significar números diferentes</p><p>em sistemas numéricos diferentes. Por exemplo, o valor '11' corresponde a 3 no</p><p>binário e a 11 no decimal. Computacionalmente, cada uso tem diferentes sistemas</p><p>numéricos usados para representar seus valores, como o hexadecimal para cores</p><p>e o binário para trabalhar diretamente com o hardware. Em aplicações para</p><p>sistemas de informação, no entanto, é mais comum utilizar o sistema decimal, o</p><p>que é comum no nosso dia a dia.</p><p>Bons estudos!</p><p>AULA 7 - CONVERSÃO DE</p><p>BASES NUMÉRICAS</p><p>7 BASES NUMÉRICAS E CONVERSÕES</p><p>Os números podem ser representados através de diferentes bases numéricas.</p><p>Essas bases incluem o sistema decimal, binário, octal e hexadecimal. Estes são os</p><p>quatro sistemas que usamos para mostrar números ou contagem de um modo</p><p>diferente. E as bases numéricas são símbolos usados para representar números ou</p><p>contagens (SILVA, 2020).</p><p>O sistema decimal, que é o mais utilizado em nosso cotidiano, está à</p><p>disposição para demonstrar números. Outros sistemas, como binário, octal e</p><p>hexadecimal, também são usados para fins matemáticos ou científicos. Estes</p><p>sistemas nos dão a capacidade de representar números em diferentes formas (LAGO,</p><p>2017).</p><p>Na Figura 1, é possível verificar quais são os símbolos que podem ser utilizados</p><p>em cada sistema de numeração.</p><p>Figura 1 - Símbolos das bases numéricas mais utilizadas</p><p>Fonte: https://shre.ink/H0jI</p><p>Várias formas de representação de símbolos são possíveis de acordo com o</p><p>sistema numérico aplicado. Na Figura 2, pode-se observar exemplos destas</p><p>representações.</p><p>Figura 2 - Representações de bases numéricas</p><p>Fonte: https://shre.ink/H01c</p><p>É possível que, facilmente, não se consiga entender qual é a base numérica de</p><p>um número se não estiver explicitada. Por exemplo, o 111110100 poderia significar</p><p>um valor em decimal, pois os números decimais não necessitam da informação da</p><p>base. Mas ao observarmos a Figura 2, perceberemos que ele é um 11111010002 de</p><p>base binária, o que na verdade quer dizer 1000.</p><p>7.1 Conversões: binário</p><p>Em suma, para converter decimais em binários, é necessário realizar divisões</p><p>sucessivas por 2, até que não seja mais possível. Os restos de divisão e,</p><p>eventualmente, o último resultado da divisão terá que ser combinado para obter o</p><p>número binário. A Figura 3, por sua vez, ilustra todo o processo.</p><p>https://shre.ink/H01c</p><p>Figura 3 - Conversão de base decimal para binária.</p><p>Fonte: https://shre.ink/H0zo</p><p>Verifica-se que o número binário 110110012 corresponde ao decimal 100, pois,</p><p>ao realizar a análise de cima para baixo dos resultados da multiplicação, obtém-se o</p><p>valor decimal. Dessa forma, é perceptível que a conversão do número binário</p><p>110110012 para decimal é de 100. Após verificar-se que o número decimal 421510</p><p>se torna o binário 10000011101112, pode-se descobrir, na direção inversa, que o</p><p>binário 110110012 é equivalente ao decimal 100. Dessa forma, realizando a leitura de</p><p>cima para baixo dos resultados da multiplicação, chega-se ao valor decimal 100 para</p><p>o binário 110110012. Observe a Figura 4:</p><p>Figura 4 - Conversão de base binária para decimal</p><p>Fonte: https://shre.ink/H0zp</p><p>7.2 Conversões: hexadecimal</p><p>Conversões hexadecimal são a forma de representar números binários e</p><p>decimais, usando caracteres alfanuméricos. A conversão hexadecimal permite usar</p><p>números compostos por 16 símbolos diferentes, sendo 0 a 9 e A a F. Ao somarmos o</p><p>valor de cada símbolo em um número hexadecimal, obtemos seu equivalente em</p><p>número binário decimal.</p><p>7.3 Conversões: octal</p><p>Conversões octal são a forma de representar valores hexadecimais usando</p><p>caracteres numéricos de 0 a 7. Os números octais podem ser convertidos em números</p><p>binários e decimais somando os valores de cada símbolo, a partir do último símbolo à</p><p>esquerda. Por exemplo, convertendo o número octal 645, deve-se primeiro considerar</p><p>o seu equivalente em binário, que é 110 100 101, e então somar os dígitos para obter</p><p>o número equivalente em decimal.</p><p>7.4 A importância das bases numéricas</p><p>Para compreender como os computadores trabalham com números binários, é</p><p>necessária uma base de conhecimento de eletrônica. Isso se deve ao fato de que um</p><p>computador é composto por diversos componentes eletrônicos, que estão envolvidos</p><p>na execução de seus processos (OLIVEIRA, 2020).</p><p>Assim, conhecer os conceitos básicos de eletrônica ajuda a compreender por</p><p>que os computadores utilizam números binários e como eles são manipulados para</p><p>realizar operações.</p><p>O computador é formado por um grande número de conexões e elementos que</p><p>trabalham juntos para intercambiar, armazenar e transmitir informações. Esta troca é</p><p>realizada principalmente através da eletrônica digital, em que sinais elétricos em forma</p><p>de pulsos ON/OFF representam um código numérico binário.</p><p>Em eletrônica, níveis de tensão e fluxo de corrente são comumente usados</p><p>para representar valores, tal como 1 ou 0 V (volts) ou 0,5 A (amperes). As empresas</p><p>que produzem componentes eletrônicos normalmente usam esses valores para</p><p>representar dois estados; um sinal ativo ou inativo (ligado e desligado). Para obter</p><p>mais opções, o intervalo de tensão usualmente é dividido em várias etapas, como 0-</p><p>4 V, para indicar 10 estados diferentes. Neste caso, a tensão escolhida seria 0,5 V.</p><p>Os números hexadecimais são frequentemente usados por programadores e</p><p>especialistas em sistemas de computador, por serem mais humanos na representação</p><p>dos valores codificados em binário. Cada número hexadecimal corresponde a quatro</p><p>dígitos binários ou 'nibble', o que é equivalem a meio byte. A título de exemplo, um</p><p>único byte tem valores de 0000 0000 a 1111 1111 em binário, que pode ser</p><p>expressado de maneira mais prática como 00 a FF em hexadecimal.</p><p>Os sistemas computacionais como o PDP-8, o ICL 1900 e o IBM utilizam</p><p>palavras de 12 bits, 24 bits ou 36 bits, criando a necessidade do uso de octal. Isso</p><p>representa uma vantagem, pois cada dígito octal representa três dígitos binários,</p><p>facilitando a visualização (CARDOSO, 2000).</p><p>Ele também desempenha um papel importante na redução de custos,</p><p>permitindo que tubos Nixie, monitores de sete segmentos e calculadoras sejam</p><p>usadas para os consoles do operador. Isso se deve ao fato de que os monitores</p><p>binários eram demasiado complexos para serem operados, enquanto os monitores</p><p>decimais exigiam um hardware complicado para serem convertidos, e os monitores</p><p>hexadecimais eram necessários para mostrar mais números.</p><p>Plataformas de computação modernizadas precisam do uso de palavras de 16,</p><p>32 ou 64 bits, divididas em bytes de oito bits. Para esses sistemas, três dígitos serão</p><p>necessários no formato octal para cada byte, sendo que o dígito octal mais relevante</p><p>significará dois dígitos binários com um bit adicional significante se houver (GERALDI;</p><p>GALASSI; FORMICE, 2013).</p><p>Assim, a representação octal de uma palavra de 16 bits ocupará 6 dígitos, mas</p><p>o dígito octal mais significativo representará apenas um bit (podendo ser 0 ou 1).</p><p>Não existe uma técnica descomplicada para ler o byte mais significativo,</p><p>usando essa representação, pois ele está dividido em quatro dígitos octal. Por esse</p><p>motivo, as linguagens de programação têm preferido usar o hexadecimal, já que dois</p><p>dígitos podem definir exatamente um byte. No entanto, existem plataformas que ainda</p><p>usam instruções de subwords, onde a octal pode ser um meio mais compreensível de</p><p>expressar, incluindo a família PDP-11 e Motorola 68000.</p><p>A arquitetura x86 moderna é comumente encontrada, porém, o octal é</p><p>raramente utilizado nesta plataforma. No entanto, a exibição em</p><p>octal torna mais</p><p>presente algumas propriedades da codificação binária dos opcodes – a título de</p><p>exemplo, o byte ModRM, dividido nos campos de 2, 3 e 3 bits -, o que pode ser útil</p><p>para a descrição destas codificações.</p><p>Frequentemente, o octal é usado na computação em detrimento do</p><p>hexadecimal, especialmente na era moderna, combinado com permissões de arquivo</p><p>em sistemas Unix (por incluir o chmod). Esta abordagem oferece como vantagem a</p><p>não necessidade de caracteres adicionais, como a utilização por exemplo, do sistema</p><p>numérico hexadecimal base 16, onde seria preciso mais seis caracteres para além de</p><p>0 a 9. O octal também surge nas telas digitais.</p><p>As linguagens de programação possuem diferentes prefixos para representar</p><p>números octais, incluindo 0, o, q, 0o, & ou $. Seguindo a Convenção da Motorola,</p><p>esses números são prefixados com @. Na Convenção da Intel, além disso, é</p><p>adicionada uma pequena letra “o” como sufixo. No DR-DOS e no Multiuser DOS,</p><p>algumas variáveis de ambiente, como $CLS, $ON, $OFF, $HEADER ou $FOOTER,</p><p>são notadas como \nnn octal, e o DEBUG DR-DOS ainda utiliza \to.</p><p>Muitas das linguagens de programação mais recentes deixaram de usar o</p><p>prefixo 0, pois os números decimais são usados frequentemente com zeros à</p><p>esquerda. Para evitar qualquer confusão entre o prefixo 0 e um 0 (zero), o prefixo q</p><p>foi incluído (GOTARDO, 2015).</p><p>Além disso, o prefixo 0o foi introduzido para não se iniciar um literal numérico</p><p>com algum caractere alfabético (como o ou q), já que isso poderia se tornar confundido</p><p>com um nome variável.</p><p>O prefixo 0o é compatível com o modelo de prefixo 0x usado para literais</p><p>hexadecimais na linguagem de programação C. Sua aderência foi detectada em</p><p>Haskell, O Caml, Perl 6, onde a partir da versão 3.0 do Python também é compatível.</p><p>Além disso, o Ruby e o Tcl a partir da versão 9 também o apoiam. Faz-se previsão de</p><p>que ele também possa ser aceito pela versão 6 do ECMAScript, onde no ECMAScript</p><p>3 foi desencorajado e no ECMAScript 5 descartado (GOTARDO, 2015).</p><p>Diversas linguagens de programação (C, Perl, Postscript, etc.) apresentam o</p><p>uso de números octais para representar sequências binárias de bytes. Isso é</p><p>necessário quando certos valores de byte (seja aqueles com significado especial para</p><p>o contexto atual ou aqueles não desejados, que não estão representados em uma</p><p>página de códigos não gráficos) precisam ser 'escapados' ao codificar caracteres</p><p>como, por exemplo, \nnn. A representação octal é particularmente útil quando estamos</p><p>trabalhando com bytes de UTF-8, pois essa codificação usa grupos de 6 bits. Neste</p><p>caso, o byte inicial tem valor octal \3nn e o byte de continuação tem valor octal \2nn.</p><p>7.5 Convertendo bases numéricas</p><p>É vital adquirir prática executando as conversões do decimal para binário, octal</p><p>e hexadecimal. Embora você já saiba como realizar esta tarefa, é primordial praticar</p><p>e conferir como essa operação é executada.</p><p>O sistema de numeração octal, ou base 8, é um pouco diferente. Em vez de</p><p>usarmos potências de 10, usamos potências de 8. Isso significa que cada dígito</p><p>representa uma potência de 8. Pense no sistema decimal que usamos todos os dias,</p><p>onde cada posição representa uma potência de 10. Por exemplo, o número 123</p><p>significa: "1 centena (100), 2 dezenas (10) e 3 unidades (1)".</p><p>A conversão de um decimal para octal é feita dividindo-se o número por 8 e</p><p>tomando o restante da divisão de baixo para cima. A Figura 5 mostra como essa</p><p>operação deve ser realizada.</p><p>Figura 5 - Conversão de base decimal para octal.</p><p>Fonte: https://shre.ink/H0m3</p><p>https://shre.ink/H0m3</p><p>7.6 Conversões de decimal para hexadecimal</p><p>Para converter um número decimal para hexadecimal, siga estes passos:</p><p>1. Identifique o número decimal.</p><p>2. Divida o número mais à direita pelo valor da base hexadecimal, no caso, 16.</p><p>3. Subdivida o resultado das divisões sucessivas até obter um resto "0".</p><p>4. Agrupe os restos das divisões.</p><p>5. Converta os restos em suas correspondentes hexadecimais.</p><p>6. O resultado será o número hexadecimal correspondente ao número decimal</p><p>original.</p><p>O processo de conversão do número decimal 65535 para a base hexadecimal</p><p>é análogo ao utilizado no caso da conversão do decimal para o octal. Nesta situação,</p><p>realiza-se a divisão pelo fator 16. O resultado desta operação está claramente</p><p>representado na Figura 6, onde é possível ver que o número 65535 (na base 10) se</p><p>transforma em FFFF16 (na notação hexadecimal).</p><p>Figura 6 - Conversão de base decimal para hexadecimal.</p><p>Fonte: https://shre.ink/H0Jc</p><p>https://shre.ink/H0Jc</p><p>REFERÊNCIAS BIBLIOGRÁFICAS</p><p>CARDOSO, J. M. P. Compilação de algoritmos em Java para sistemas</p><p>computacionais reconfiguráveis com exploração do paralelismo ao nível das</p><p>operações. Tese de Doutorado. Universidade Técnica de Lisboa. 2000.</p><p>GERALDI, L. M. A.; GALASSI, C. R.; FORMICE, C. R. Elucidando os sistemas</p><p>operacionais. Taquaritinga. p. 111-121, 2013.</p><p>GOTARDO, R. Linguagem de programação. Rio de Janeiro: Seses, p. 34, 2015.</p><p>LAGO, M. H. Os números binários: do saber escolar ao saber científico. Jornal</p><p>Internacional de Estudos em Educação Matemática, v. 10, n. 1, p. 41-49, 2017.</p><p>OLIVEIRA, S. O. A magia das bases numéricas. Educação Contemporânea-Volume</p><p>41, p. 49, 2020.</p><p>SILVA, M. V. Conceitos de computação I. Editora Senac São Paulo, 2020.</p><p>7 BASES NUMÉRICAS E CONVERSÕES</p><p>7.1 Conversões: binário</p><p>7.2 Conversões: hexadecimal</p><p>7.3 Conversões: octal</p><p>7.4 A importância das bases numéricas</p><p>7.5 Convertendo bases numéricas</p><p>7.6 Conversões de decimal para hexadecimal</p><p>REFERÊNCIAS BIBLIOGRÁFICAS</p>

Mais conteúdos dessa disciplina