homechevron_rightProfissionalchevron_rightConversores de unidades

Conversão de números fracionários entre sistemas de numeração

Esta calculadora online ajuda a converter um número fracionário de um sistema de numeração em um número fracionário de outro sistema de numeração

Depois de ter criado diversas calculadoras para conversão de sistemas de numeração (da mais simples a mais avançada: Conversão de números decimais em outras notações, Conversão de sistemas de numeração decimais, Conversão entre bases), surge a pergunta: o que devemos fazer a respeito dos números fracionários, como convertê-los? Então, decidi fazer outra calculadora, que também pode converter números fracionários entre diferentes sistemas de numeração.

Como se costume, a teoria se encontra abaixo da calculadora

PLANETCALC, Conversão de números fracionários entre sistemas de numeração

Conversão de números fracionários entre sistemas de numeração

Base do sistema de numeração de entrada
Base do sistema de numeração de objetivo
Dígitos após o ponto decimal: 8
Número de objetivo
 
Número fonte (decimal)
 
Número de objetivo (decimal)
 
Erro de conversão (decimal)
 
Erro de conversão máxima possível (decimal)
 

Então, eu costumava pensar que a conversão de números fracionários era uma questão difícil, porém acontece que é na realidade fácil de entender. Tudo que precisamos é lembrar que estamos lidando com um sistema de numeração posicional.

Vejamos o exemplo. Observe o número decimal 6.125. Você pode escrevê-lo dessa maneira:

6.125=6*10^0 + 1*10^{-1}+2*10^{-2}+5*10^{-3}=6*1+\frac{1}{10}+\frac{2}{100}+\frac{5}{1000}

Fácil de acompanhar, certo? Mas acontece que é a mesma coisa para qualquer outro sistema de numeração posicional. Tenhamos, por exemplo, o infame sistema binário e o número binário fracionário 110.001. Você pode escrevê-lo assim:

110.001=1*2^2 + 1*2^1+0*2^0+0*2^{-1}+0*2^{-2}+1*2^{-3}=1*4+1*2+0*1+\frac{0}{2}+\frac{0}{4}+\frac{1}{8}=6+\frac{1}{8}=6.125

Sim, eu inventei. O binário 110.001 é o decimal 6.125. Não foi fácil?

Há um porém. Já que temos frações e os denominadores são diferentes, não podemos manter sempre a mesma precisão para sistemas de numeração diferentes.

Novamente, vamos ver um exemplo. Observe o número decimal 0.8

0.8=0+\frac{8}{10}.

Até então tudo bem... Para o sistema de numeração decimal. Mas para o sistema de numeração binário, nós teremos problemas. Observe

0+\frac{1}{2}+\frac{1}{4}+\frac{0}{8}+\frac{0}{16}+\frac{1}{32}+\frac{1}{64}+...=0 + 0.5 + 0.25+0.03125+0.015625+...=0.796875+...

Podemos seguir adiante, mas mesmo agora, podemos ver que o decimal 0.8 é o binário 0.11001100... (e muitos outros dígitos). De fato, é o número periódico com período 1100, então não poderemos encontrar um número exato de dígitos binários para escrever 0.8 precisamente. Será 1100 todo o caminho pela frente.

É por isso que a conversão de números fracionários geralmente nos informa um erro de conversão. O erro depende do número de dígitos após o ponto que decidamos usar. Por exemplo, vamos converter o decimal 0.8 em binário e usar 6 dígitos após o ponto. Nós obteremos 0.110011. Porém não será o decimal 0.8, de fato, será o decimal 0.796875, a diferença sendo de 0.003125. E esse será o nosso erro durante a conversão decimal de 0.8 em binário com 6 dígitos após o ponto.

O valor do dígito mais à direita é chamado de resolução ou precisão e define o menor número não-zero possível que pode ser escrito usando o número de dígitos. No nosso exemplo, é 2^{-6}=0.015625. E o erro máximo de conversão possível nesse caso é a metade dele, ou 0.0078125. Note que o nosso erro de conversão para 0.8 não é tão ruim comparado ao erro possível máximo.

É isso.

URL copiado para a área de transferência
Creative Commons Attribution/Share-Alike License 3.0 (Unported) PLANETCALC, Conversão de números fracionários entre sistemas de numeração

Comentários