Friday 16 June 2017

Fração Binária


Frações binárias Enquanto eles funcionam o mesmo em princípio, as frações binárias são diferentes das frações decimais em que números eles podem representar com precisão com um determinado número de dígitos e, portanto, também em que números resultam em erros de arredondamento: especificamente, o binário só pode representar esses números Como uma fração finita onde o denominador é um poder de 2. Infelizmente, isso não inclui a maioria dos números que podem ser representados como fração finita na base 10, como 0.1. Arredondado para 4 dígitos Valor arredondado como fração E é assim que você já obtém um erro de arredondamento quando você simplesmente anotou um número como 0.1 e executá-lo através do seu intérprete ou compilador. Não é tão grande quanto 380 e pode ser invisível porque os computadores são cortados após 23 ou 52 dígitos binários em vez de 4. Mas o erro está lá e causará problemas, eventualmente, se você simplesmente ignorar. Por que usar o binário No nível mais baixo, os computadores são baseados em bilhões de elementos elétricos que possuem apenas dois estados (geralmente baixa e alta tensão). Ao interpretar estes como 0 e 1, é muito fácil construir circuitos para armazenar números binários e fazer cálculos com eles. Embora seja possível simular o comportamento de números decimais com circuitos binários também, é menos eficiente. Se os computadores usassem números decimais internamente, eles tinham menos memória e ficavam mais lentos no mesmo nível de tecnologia. Uma vez que a diferença de comportamento entre números binários e decimais não é importante para a maioria das aplicações, a escolha lógica é criar computadores com base em números binários e viver com o fato de que alguns cuidados e esforços adicionais são necessários para aplicativos que requerem comportamento semelhante a decimal. O Guia de Ponto Flutuante Início Respostas Básicas Referências xkcd Formatos de números Calculadora binária Use as seguintes calculadoras para executar a adição, subtração, multiplicação ou divisão de dois valores binários, converta do valor binário para o valor decimal ou vice-versa. Por favor, note que devido à limitação da precisão do computador. Esta calculadora só pode levar até 32 bits de valor binário ou valores decimais de até 10 dígitos. Cálculo binário, dicionar, subtrair, multiplicar ou dividir Converter valor binário para valor decimal Converter valor decimal para referências de valores binários O sistema binário é um sistema numérico que usa apenas dois símbolos, 0 e 1. Devido à sua facilidade de implementação em circuitos eletrônicos digitais usando Portas lógicas, todos os computadores modernos usam o sistema binário internamente. A seguir estão algumas conversões típicas entre valores binários e valores decimais. Decimal 0 0 em decimal binário 1 1 em decimal binário 2 10 em decimal binário 3 2 1 11 em decimal binário 4 2 2 100 em decimal binário 7 2 2 2 1 111 em decimal binário 8 2 3 1000 em decimal binário 10 2 3 2 1010 em decimal binário 16 2 4 10000 em decimal binário 20 2 4 2 2 10100 em binário Adição binária A adição de binários é semelhante ao sistema decimal. O único diferente é carregar quando o resultado é 2. 0 0 0 0 1 1 1 0 1 1 1 0, carregar 1 10 Subtração Binária A subtração funciona de forma semelhante: 0 - 0 0 0 - 1 1, emprestar 1 -1 1 - 0 1 1 - 1 0 Isso pode ser um pouco confuso, mas as posições decimais em binário representariam reciprocais de poderes de dois (por exemplo, 12, 14, 18, 116, para a primeira, segunda, terceira e quarta casas decimais, respectivamente), assim como Em decimal, as casas decimais representam reciprocais de poderes sucessivos de dez. Para responder a sua pergunta, você precisaria descobrir o que os reciprocais de poderes de dois precisariam ser adicionados para adicionar até 110. Por exemplo: 116 132 0.09375, o que é bastante próximo de 110. Adicionar 164 nos coloca, assim como 1128. Mas, 1256 nos aproxima ainda mais. Então: 0.00011001 binário 0.09765625 decimal, que está perto do que você pediu. Você pode continuar adicionando mais e mais dígitos, então a resposta seria 0.00011001. Veja como pensar no método. Cada vez que você se multiplicar por 2, você está deslocando a representação binária do número deixado 1 lugar. Você mudou o dígito mais alto após o ponto para o lugar 1, então tire esse dígito e é o primeiro dígito (mais alto, portanto, mais à esquerda) da sua fração. Faça isso novamente, e você tem o próximo dígito. Convertendo a base de um número inteiro, dividindo e tomando o restante como o próximo dígito está mudando o número para a direita. É por isso que você obtém os dígitos na ordem oposta, o mais baixo primeiro. Isso obviamente generaliza para qualquer base, não apenas 2, como apontado pela GoofyBall. Outra coisa para pensar: se você estiver arredondando para N dígitos, pare em dígitos N1. Se o dígito N1 for um, você precisa arredondar (uma vez que os dígitos em binário só podem ser 0 ou 1, truncando com o próximo dígito a 1 é tão impreciso como truncando um 5 em decimal). Respondeu 28 de abril 15 às 11:38 Sua resposta 2017 Stack Exchange, IncConverting Decimal Fractions to Binário No texto correto, vimos como converter o número decimal 14.75 para uma representação binária. Neste caso, nós citamos a parte fracionada da expansão binária 34 é obviamente 12 14. Enquanto isso funcionou para este exemplo particular, é preciso uma abordagem mais sistemática para casos menos óbvios. Na verdade, existe um método simples, passo a passo, para calcular a expansão binária no lado direito do ponto. Vamos ilustrar o método convertendo o valor decimal .625 para uma representação binária. Passo 1 . Comece com a fração decimal e multiplique por 2. A parte do número inteiro do resultado é o primeiro dígito binário à direita do ponto. Porque .625 x 2 1 .25, o primeiro dígito binário à direita do ponto é um 1. Até agora, temos .625 .1. (Base 2). Passo 2 . Em seguida, ignoramos a parte do número inteiro do resultado anterior (o 1 neste caso) e multiplique por 2 mais uma vez. A parte do número inteiro deste novo resultado é o segundo dígito binário à direita do ponto. Continuaremos esse processo até obtermos um zero como nossa parte decimal ou até que reconheçamos um padrão de repetição infinito. Porque .25 x 2 0 .50, o segundo dígito binário à direita do ponto é um 0. Até agora, temos .625 .10. (Base 2). Etapa 3 . Desconsiderando a parte do número inteiro do resultado anterior (este resultado foi de .50, então, na verdade, não há parte do número inteiro para desconsiderar neste caso), multiplicamos por 2 mais uma vez. A parte do número inteiro do resultado é agora o próximo dígito binário à direita do ponto. Porque .50 x 2 1 .00, o terceiro dígito binário à direita do ponto é um 1. Então, agora temos .625 .101. (Base 2). Passo 4. Na verdade, não precisamos de um Passo 4. Nós terminamos na Etapa 3, porque nós tínhamos 0 como parte fracionada do nosso resultado lá. Daí a representação de .625 .101 (base 2). Você deve verificar novamente o nosso resultado expandindo a representação binária. Fracções binárias infinitas O método que acabamos de explorar pode ser usado para demonstrar como algumas frações decimais produzirão expansões infinitas de frações binárias. Nós ilustramos usando esse método para ver que a representação binária da fração decimal 110 é, de fato, infinita. Lembre-se do processo passo-a-passo para realizar essa conversão. Passo 1 . Comece com a fração decimal e multiplique por 2. A parte do número inteiro do resultado é o primeiro dígito binário à direita do ponto. Porque .1 x 2 0 .2, o primeiro dígito binário à direita do ponto é um 0. Até agora, temos .1 (decimal) .0. (Base 2). Passo 2 . Em seguida, ignoramos a parte do número inteiro do resultado anterior (0 neste caso) e multiplique por 2 mais uma vez. A parte do número inteiro deste novo resultado é o segundo dígito binário à direita do ponto. Continuaremos esse processo até obtermos um zero como nossa parte decimal ou até que reconheçamos um padrão de repetição infinito. Porque .2 x 2 0 .4, o segundo dígito binário à direita do ponto também é 0. Até agora, temos .1 (decimal) .00. (Base 2). Etapa 3 . Desconsiderando a parte do número inteiro do resultado anterior (novamente um 0), multiplicamos por 2 mais uma vez. A parte do número inteiro do resultado é agora o próximo dígito binário à direita do ponto. Porque .4 x 2 0 .8, o terceiro dígito binário à direita do ponto também é 0. Então, agora temos .1 (decimal) .000. (Base 2). Passo 4. Nós multiplicamos por 2 mais uma vez, ignorando a parte do número inteiro do resultado anterior (novamente um 0 neste caso). Porque .8 x 2 1 .6, o quarto dígito binário à direita do ponto é um 1. Então, agora temos .1 (decimal) .0001. (Base 2). Passo 5. Nós multiplicamos por 2 mais uma vez, ignorando a parte do número inteiro do resultado anterior (um 1 neste caso). Porque .6 x 2 1 .2, o quinto dígito binário à direita do ponto é um 1. Então, agora temos .1 (decimal) .00011. (Base 2). Passo 6. Nós multiplicamos por 2 mais uma vez, ignorando a parte total do resultado anterior. Vamos fazer uma observação importante aqui. Observe que este próximo passo a ser executado (multiplicar 2 x 2) é exatamente a mesma ação que tivemos no passo 2. Então, estamos obrigados a repetir os passos 2-5, depois retornamos novamente ao Passo 2 indefinidamente. Em outras palavras, nunca obteremos 0 como fração decimal de nosso resultado. Em vez disso, iremos passar pelos passos 2-5 para sempre. Isso significa que obteremos a seqüência de dígitos gerados nas etapas 2-5, ou seja, 0011, uma e outra vez. Assim, a representação binária final será. 1 (decimal) .00011001100110011. (Base 2). O padrão de repetição é mais óbvio se a resolvê-lo em cores como abaixo: 1 (decimal) .0 0011 0011 0011 0011. (base 2).

No comments:

Post a Comment