Representação de Números
Teoria
Introdução
Fala moçada, beleza? Vamos dar início ao estudo de uma disciplina muuuuito bacana que é o Cálculo Numérico, o nosso objetivo aqui é estudar o uso de alguns métodos numéricos para resolução dos mais diversos problemas!!! Então fique tranquilo que seus problemas acabaram!
Nós devemos ter em mente que o computador, a máquina, vai fazer tudo para a gente! Ou seja, os métodos que veremos muitas vezes vão parecer cansativos e demorados se nos imaginarmos resolvendo eles, mas normalmente são moleza para uma máquina.
E por mais que uma máquina faça todas as contas para nós, nós nunca conseguimos nos livrar de um detalhe bem incômodo: os erros. Vamos falar muito deles nesse curso pois seu entendimento é super necessário para conseguirmos aplicar os métodos numéricos adequadamente.
Algarismos significativos
Antes de começar a estudar como os números são apresentados para as máquinas, vamos relembrar um assuntinho que nos acompanha desde o início dessa jornada nas Engenharias e Ciências Exatas. Consegue dar um palpite? Se você chutou Algarismos significativos, você está certíssimo.
Veja bem, os algarismos significativos de um número são aqueles que podem ser usados com confiança e geralmente corresponde ao número de algarismos corretos mais um estimado, também chamado de duvidoso, e esse algarismo duvidoso carrega com ele uma incerteza e é nela que mora o erro.
Observe a marcação em nossa régua, quantos centímetros ela está medindo?
Bom, podemos afirmar com certeza que ela está medindo mais que 2,2 e menos que 2,3 cm. O número exato que procuramos existe e mora no intervalo entre esses números, mas não podemos identificá-lo com certeza absoluta, não é?
Podemos colocar esse número mais perto do ou mais perto do . Mas qual vai estar certo? Não podemos afirmar nada...
Então, temos uma incerteza aí! E isso está dependendo do observador ou do equipamento que você está usando para tirar essa medida.
No exemplo acima, cada estimativa tem 3 algarismos significativos, eles podem ser algarismos corretos ou duvidosos. Temos certeza, que o número que procuramos está entre e ou seja o número é tem 2 algarismos corretos e estamos em dúvida quanto ao terceiro. Podemos considerar este último mais perto do ou mais perto do .
Nesse caso acima, estamos com 3 algarismos significativos e nossa incerteza é da ordem de . Isso porque podemos considerar mais perto do ou mais perto do .
Vamos ver como funciona, quantos algarismos significativos tem o número 31.400? Ele pode ter 3, 4 ou 5 algarismos significativos, dependendo de os zeros serem conhecidos com confiança.
Perceba bem que todas essas representações podem ser apresentadas na forma de notação científica e um computador representa um número real no sistema próprio denominado aritmética de ponto flutuante resolvendo toda a incerteza!
Representação de Números
Tudo que usarmos vai depender de você, da sua necessidade. Vamos ver como isso interfere nos resultados?
Número máximo de dígitos ()
Imagine que você quer calcular a área de um disco de raio igual a .
Você pode dar várias respostas e ainda assim todas estão erradas! Algumas respostas possíveis seriam:
Enfim, você pegou o espírito da coisa né? Como o e um número com infinita casas decimais nunca chegaremos a resposta exata. O resultado que obtemos vai depender exclusivamente da aproximação de que usarmos. E essa aproximação deve ser tão exata quanto precisarmos. E essa ideia será muito importante!
O número de casas decimais a ser usado vai depender da precisão desejada e de onde você vai aplicar esses dados!
Base escolhida
Como nós representamos números? É sobre isso que vamos falar nessa parte.
Cara, a base nada mais é do que a quantidade de algarismos que podemos usar para representar os números. Estamos acostumados com a base decimal que possui 10 algarismos (0, 1, 2... 9), essa é a base com a qual estamos acostumados a lidar no nosso dia a dia e aprendemos desde pequenos. Mas um computador, por outro lado, normalmente usa um sistema de representação binário (0 ou 1), o que significa que o computador irá escrever os números apenas com os algarismos 0 e 1, ele também usa o ponto para representar a nossa vírgula no sistema decimal.
E você pode usar qualquer base que queira para representar os números! A decimal é a mais empregada atualmente, mas existe a binária, a base hexadecimal (base 16), a octal (base 8), entre outras.
E os erros só aumentam quando manipulamos os números em diversas bases. Por exemplo, um número pode ter representação finita em uma base e não-finita em outra (não se preocupe, isso será visto mais pra frente)! Na nossa interação com o computador, nós passamos as informações para ele pelo sistema decimal. Esses dados são convertidos para o binário, no qual todos os cálculos são feitos e depois convertidos de volta para decimal para que possamos ler. Todas essas conversões geram ainda mais erros!
Conversão de Números nos Sistemas Decimal e Binário
Vamos começar engatinhando.
No sistema decimal, para representar um número podemos escrever ele na forma de somas potências de base dez. Parece complicado, mas olha só:
Vamos analisar o número que é do sistema decimal:
Prontinho, escrevemos um número como uma soma de potências de base dez.
Um número escrito na forma binária só usa algarismos do tipo 0 e 1. Mas, da mesma forma que era na base decimal, os algarismos vão indicar uma soma de potências de base dois Por exemplo, vamos agora analisar um número 1011 escrito na base 2:
Entendeu como funciona? Todos os números podem ser escritos como uma soma de potências de uma base. Generalizando, um número com os algarismos na base seria:
Mas por que eu to falando isso? Porque assim é fácil passarmos números do sistema binário pro decimal! Por exemplo o em decimal fica:
Fazendo essas continhas temos:
Então o número da base 2 equivale ao na base dez.
E pra voltar? Ir do decimal para o binário? Aí o que nós vamos fazer é dividir o número por várias vezes até aparecer o no quociente e ir anotando os restos! Assim oh:
Agora escrevemos os restos de trás pra frente:
Percebeu que tá batendo certinho com o que tínhamos? Até aí tudo nas mil maravilhas né?
Mas, e para convertermos os números que vem depois da vírgula? Como faz??
Bom, vamos começar indo do binário para o decimal que é mais fácil, os números depois do ponto (que correspondem a vírgula no sistema decimal) serão elevados a potências de dez negativas. O expoente sempre irá diminuir:
Ou seja, quando temos casas decimais ficamos com:
Então o processo binário decimal não mudou muito né? É só continuarmos diminuindo as potências de .
E para irmos do decimal para o binário? Vamos usar o . Primeiro fazemos a parte inteira:
Beleza, agora para a parte depois da vírgula nós vamos multiplicar por ao invés de dividir! Depois de multiplicar verificamos se o número é maior que . Se for, coloca-se na parte fracionária e o “resto” passa adiante. Caso contrário, botamos um . E vamos fazendo isso até chegarmos no . Vai ficar mais claro com o exemplo:
Pronto, ah e aqui a gente lê na ordem certa haha.
Somando:
Exatamente o que a gente esperava!
Agora lembra aquela história que eu falei de números que são finitos em uma base e não finitos em outra? Vamos passar o número para binário. O já sabemos que fica , mas e o ?
Opa, percebeu que entramos em um loop? Voltamos para o ! Então nosso número em binário será uma dízima:
E é daí que alguns problemas aparecem. . .
Para compreendermos como irá funcionar nesses casos, precisaremos entender um pouco melhor sobre a linguagem que os computadores usam. Isso veremos no próximo tópico, beleza?! Mas antes vamos praticar um pouco de conversão?!
Representação de Números
Conversão de Números nos Sistemas Decimal e Binário
Exercícios Resolvidos
Exercício Resolvido #1
Adaptado do Exemplo 1.4 de Darezzo, S.A.|. A. Cálculo Numérico: aprendizagem com Apoio de Software.
Transforme os seguintes números da base decimal para a base binária:
(a) 25 (b) 11
Passo 1
- 25
- 11
Fala meu amigo, vamos relembrar um pouquinho como trocamos a base de um algarismo:
Vamos do decimal para o binário? Aí o que nós vamos fazer é dividir o número por várias vezes até aparecer o no quociente e ir anotando os restos! Assim oh:
Organizando direitinho os restos fica:
(1)
(0)
(0)
(1)
(1)
Agora lemos os restos de trás pra frente:
Molezinha! Vamos pro próximo?
Passo 2
Meu bem, o esqueminha pra resolver esse exercício é igualzinho ao anteror. Vamos ver como fica?
Organizando direitinho os restos fica:
(1)
(1)
(0)
(1)
Agora lemos os restos de trás pra frente:
Feshooooow! Agora é só partir pro abraço!
Resposta
Exercício Resolvido #2
Márcia A. Gomes Ruggiero e Vera Lúcia da Rocha Lopes, Cálculo Numérico – Aspectos Teóricos e Computacionais, 2ª ed. São Paulo: MAKRON Books, 1996, pag 22, exercício 1.
Converta os seguintes números decimais para sua forma binária:
Passo 1
Tá! Vamos lá!
Passo 2
Passo 3
Como só tem parte decimal começamos por ela direto. Lembrando que agora temos que multiplicar e não dividir!
Já deu pra perceber que isso não vai parar tão cedo né? Isso se parar! Então podemos dar como resposta:
Resposta
Exercício Resolvido #3
Márcia A. Gomes Ruggiero e Vera Lúcia da Rocha Lopes, Cálculo Numérico – Aspectos Teóricos e Computacionais, 2ª ed. São Paulo: MAKRON Books, 1996, pag 22, exercício 2.
Converta os seguintes números binários para sua forma decimal:
Passo 1
Passo 2
Passo 3
Passo 4
Resposta
Exercício Resolvido #4
Fonte do Exercício.“Elaboração Própria”
Julgue a afirmação abaixo como verdadeiro ou falso:
“Na estrutura de um programa em Matlab, as instruções contêm expressões, que por sua vez, criam e processam matrizes.”
Passo 1
Opa, para resolver essa questão vai ajudar se a gente se lembrar que o nome do Matlab é um acrônimo para Matrix Laboratory, ou seja, laboratório de matrizes.
Então a base do Matlab são as matrizes!
E sim, é verdade que quando você realiza qualquer operação no Matlab, por traz da sua sintaxe você tá criando e operando matrizes.
Então essa resposta é Verdadeira.
Resposta
Ei, a resposta está no passo a passo :)
Exercício Resolvido #5
Lista 1 – Professora Luziane – UFRJ – Questão 4 Adaptada
Considere um computador que opera em base , com representação em precisão simples. Em cada um dos itens abaixo, mostre qual é o número real que está representado em forma de ponto flutuante normalizado.
Passo 1
O segundo bloco de números representa o expoente. Nele, temos n= 8 espaços, que são 8 bits. Dessa forma, o expoente máximo é dado por:
Assim, a representação normalizada será:
Então o número sendo representado é:
Passo 2
Repare que aqui temos toda a característica cheia de , mas a mantissa diferente de zero. Isso é um caso onde a máquina acusaria (not a number).
Passo 3
Aqui temos expoente todo no e a mantissa zerada. Como , essa seria a representação de .
Passo 4
Como temos expoente igual a e uma mantissa diferente de , isso indica um número não normalizado. Consideramos então a mantissa entre e e expoente mínimo ficando com:
Então o número sendo representado é:
Passo 5
Temos o expoente e a mantissa zerada. Como , essa seria a representação de .
Passo 6
Então o número sendo representado é:
Passo 7
Resposta