Sunday 29 October 2017

Divide by 2 method binário opções


Um amigo meu tinha uma tarefa de casa onde ele precisava converter números decimais (base 10) para binários. Eu o ajudei e expliquei uma das maneiras que me ensinaram a fazer isso. O jeito que eu mostrei era dividir repetidamente o número por 2 e então pegar o restante, o número binário será o restante lido de baixo para cima. Depois que eu lhe mostrei o algoritmo e um exemplo, ele partiu para fazer o resto de seus problemas. Hoje ele me enviou um e-mail e me perguntou por que este método funciona. Eu estava meio chocado com essa pergunta, eu nunca dei um segundo pensamento para o porquê isso funciona, eu só fiz como me foi dito sabendo que se eu fizesse esse algoritmo eu sempre obteria a resposta certa em binário. Eu pensei sobre isso por algum tempo e ainda não consigo descobrir por que este método funciona, qualquer ajuda seria apreciada. Este isnt para uma atribuição, meramente minha curiosidade e frustração em não fazer esta pergunta antes. Você se importa de explicar como você foi de: ne0times 20 e1times 21 cdots ektimes 2k ne0 2Bigl (e1 e2times 2 cdots ektimes 2 Bigr), eu não estou seguindo a transição para a forma fechada. Lembre-se do significado da notação base 10 quando você escreve um número como dnd cdots d2d1d0 onde di é o i-ésimo dígito (da direita para a esquerda), o que você está dizendo é que o número é igual a: d0times 100 d1times 101 d2times 102 cdots dntimes 10n . Assim, por exemplo, 5381 representa o número 1 x 100 8 x 101 3 x 102 5 x 103 1 80 300 5000. Escrever um número em binário (base 2) pretende representar o número exactamente da mesma maneira, mas com potências de 2 em lugar De potências de 10: a expressão ekcdots e3e2e1e0 representa o número ne0times 20 e1times 21 e2times 22 e3times 23 cdots ektimes 2k. Como cada somatório, exceto o primeiro, é um múltiplo de 2, podemos escrever: begin nampe0times 20 e1times 21 cdots ektimes 2k ampe0 left (e1times2right) left (e2times4right) cdots left (ektimes2 right) amp e0 left (2 times e1right ) Esquerda (2x (e2x2) direita) cdots esquerda (2x (ektimes2) direita) amp e0 2Bigl (e1 (e2times2) cdots (ektimes2) Bigr). End Isso significa que quando você divide n por 2 você obtém um restante de e0 (o dígito mais à direita da expressão base 2 de n), e um quociente de q1e1times 20 e2times 21 cdots ektimes 2. Agora você pode determinar o próximo dígito binário de n repetindo o processo com q1: escrevemos q1 e1 2Bigl (e2 e3times 2 cdots ektimes 2 Bigr), então o restante de dividir q1 por 2 é o penúltimo dígito da expressão binária de n , Eo quociente é q3, com q3 e2 e3 x 2 cdots ektimes 2. Lather, enxaguar e repetir até que o restante quociente é 0. Como dividir números binários Problemas de divisão binária pode ser resolvido usando divisão longa, que é um método útil para ensinar o processo para si mesmo ou escrever um simples Programa de computador. Alternativamente, o método do complemento de subtração repetida fornece uma abordagem que você pode não estar familiarizado com, embora não seja tão comumente usado na programação. 1 As linguagens de máquina geralmente usam um algoritmo de estimativa para maior eficiência, mas estas não são descritas aqui. 2 Etapas Editar Método Um de Dois: Usando Longo Divisão Editar Comentário divisão decimal longo. Se o seu sido um tempo desde que você fez divisão longa com ordinário decimal (base dez) números, rever o básico usando o problema 172 4. Caso contrário, pule para a próxima etapa para aprender o mesmo processo em binário. O dividendo é dividido pelo divisor. E a resposta é o quociente. Compare o divisor com o primeiro dígito do dividendo. Se o divisor for o número maior, continue adicionando dígitos ao dividendo até que o divisor seja o número menor. (Por exemplo, se calcularmos 172 4, comparamos 4 e 1, observamos que 4 gt 1 e comparamos 4 a 17 em vez disso.) Escreva o primeiro dígito do quociente acima do último dígito de dividendo que você estava usando na comparação. Comparando 4 e 17, vemos que 4 entra em 17 quatro vezes, então escrevemos 4 como o primeiro dígito de nosso quociente, acima do 7. Multiplique e subtraia para encontrar o restante. Multiplique o quociente com o divisor, neste caso 4 x 4 16. Escreva o 16 abaixo do 17, então subtraia 17-16 para encontrar o restante, 1. Repita. Mais uma vez, comparamos o divisor 4 com o próximo dígito, 1, notamos que 4 gt 1, e derrubamos o próximo dígito do dividendo, para comparar 4 com 12 em vez disso. 4 entra em 12 três vezes sem resto, então escrevemos 3 como o próximo dígito do quociente. A resposta é 43. Configurar o binário problema de divisão longa. Vamos usar o exemplo 10101 11. Escreva isso como um problema de divisão longa, com o 10101 como o dividendo eo 11 como o divisor. Deixe espaço acima para escrever o quociente, e abaixo para escrever seus cálculos. Compare o divisor com o primeiro dígito do dividendo. Isso funciona exatamente como um problema de divisão decimal longo, mas é realmente um pouco mais fácil em binário. Ou você não pode dividir o número pelo divisor (0) ou o divisor pode ir em uma vez (1): 11 gt 1, portanto, 11 cant entrar em 1. Escreva um 0 como o primeiro dígito do quociente (acima do primeiro dígito Do dividendo). Tack no dígito seguinte e repita até obter um 1. Aqui estão os próximos passos de casal para o nosso exemplo: Traga para baixo o próximo dígito do dividendo. 11 gt 10. Escreva um 0 no quociente. Abaixe o próximo dígito. 11 lt 101. Escreva um 1 no quociente. Encontre o restante. Como na divisão decimal longa, multiplicamos o dígito que acabamos de encontrar (1) com o divisor (11) e escrevemos o resultado abaixo de nosso dividendo alinhado com o dígito que acabamos de calcular. Em binário, podemos atacar isso, já que 1 x o divisor sempre é igual ao divisor: Escreva o divisor debaixo do dividendo. Aqui, escrevemos 11 alinhados debaixo dos três primeiros dígitos (101) do dividendo. Calcule 101 - 11 para obter o restante, 10. Veja como subtrair números binários se você precisar de uma revisão. Repita até que o problema seja concluído. Abaixe o próximo dígito do divisor para o restante para fazer 100. Desde 11 lt 100, escreva um 1 como o próximo dígito do quociente. Continuar o problema como antes: Escrever 11 abaixo do 100 e subtrair para obter 1. Abaixe o dígito final do dividendo para fazer 11. 11 11, então escreva um 1 como o dígito final do quociente (a resposta). Não há restante, então o problema está completo. A resposta é 00111. Ou simplesmente 111. Adicione um ponto de raiz, se necessário. Às vezes, o resultado não é um inteiro. Se você ainda tiver um restante depois de usar o dígito final, adicione um .0 ao dividendo e a. Para o seu quociente, para que você possa derrubar outro dígito e continuar. Repita até atingir a especificidade desejada, depois arredonde a resposta. No papel, você pode arredondar para baixo, cortando o último 0, ou se o último dígito for um 1, solte-o e adicione 1 ao último último dígito. Na programação, siga um dos algoritmos padrão para arredondamento para evitar erros na conversão entre números binários e decimais. 3 Os problemas de divisão binária geralmente terminam com a repetição de frações, com mais freqüência do que ocorrem na notação decimal. 4 Isto é referido com o termo mais geral ponto radix, que se aplica em qualquer base, uma vez que o ponto decimal é usado apenas no sistema decimal. 5 Método Dois de Dois: Usando o Método de Complemento Editar Compreenda o conceito básico. Uma maneira de resolver problemas de divisão em qualquer base é manter subtraindo o divisor do dividendo e, em seguida, o restante, enquanto totalizando o número de vezes que você pode fazê-lo antes de obter um número negativo. Heres um exemplo na base dez, resolvendo o problema 26 7: 26 - 7 19 (subtraído 1 vez) 19 - 7 12 (2) 12 - 7 5 (3) 5 - 7 -2. Número negativo, então volte. A resposta é 3 com um restante de 5. Observe que esse método não calcula qualquer parte não-inteiros da resposta. Aprenda a subtrair por complementos. Enquanto você pode facilmente usar o método acima em binário, podemos subtrair por um método mais eficiente também, o que economiza tempo ao programar computadores para dividir números binários. Este é o método de subtração por complementos em binário. Aqui está o básico, calculando 111 - 011 (certifique-se de que ambos os números tenham o mesmo comprimento): Encontre o complemento do segundo termo, subtraindo cada dígito de 1. Isso é feito facilmente em binário, alternando cada 1 a 0 e cada 0 Para 1. 6 7 No nosso exemplo, 011 torna-se 100. Adicione um ao resultado: 100 1 101. Isso é chamado de complemento de dois, e permite-nos realizar a subtração como um problema de adição. 8 Essencialmente, o resultado é como se nós adicionássemos um número negativo em vez de subtrair um positivo, uma vez que terminamos o processo. Adicione o resultado ao primeiro termo. Escreva e resolva o problema de adição: 111 101 1100. Rejeite o dígito de transporte. Descarte o primeiro dígito de sua resposta para obter o resultado final. 1100 100. Combine os dois conceitos acima. Agora você sabe o método de subtração de resolver problemas de divisão, e os dois complementam o método de resolver problemas de subtração. Você pode combinar isso em um único método para resolver problemas de divisão, usando as etapas abaixo. 9 Se você gosta, você pode tentar descobrir você mesmo antes de continuar. Subtrair o divisor do dividendo, adicionando twos complemento. Vamos percorrer o problema 100011 000101. O primeiro passo é resolver 100011 - 000101, usando o método twos complementar para transformá-lo em um problema de adição: Twos complemento de 000101 111010 1 111011 100011 111011 1011110 Descartar carry bit 011110 Adicionar um ao quociente. Em um programa de computador, este é o ponto onde você incrementar o quociente por um. No papel, faça uma anotação em algum lugar em um canto onde não ficará confuso com seu outro trabalho. Weve subtraído com sucesso uma vez, então o quociente até agora é 1. Repita subtraindo o divisor do restante. O resultado de nosso último cálculo é o restante sobrando depois que o divisor entrou uma vez. Continue adicionando o complemento twos do divisor cada vez e descartando o carry bit. Adicione um ao quociente de cada vez, repetindo até obter um restante thats igual ou menor que seu divisor: 10111110 111011 1011001 011001 (quociente 1110) 011001 111011 1010100 010100 (quociente 10111) 010100 111011 1001111 001111 (111100) 001111 111011 1001010 001010 (1001101) 001010 111011 10000101 0000101 (1011110) 0000101 111011 1000000 000000 (1101111) 0 é menor do que 101, por isso paramos aqui. O quociente 111 é a resposta ao problema de divisão. O restante é o resultado final do nosso problema de subtração, neste caso 0 (sem resto).Labs: Criptografia. Parte 1. Conversão de decimais para binário Existem dois métodos de converter decimais para binário. Aqui apresentamos ambos os métodos usando o número 85 como um exemplo. Primeiro método. Estamos tentando representar o número 85 como a soma de poderes de dois a partir do maior. Encontrar o maior poder de 2 que não é mais de 85. É 64 2 6. Subtraí-lo: 85 - 2 6 21. O resultado será sempre menor do que o poder de dois que foi subtraído (você pode descobrir o porquê). Agora precisamos representar 21 como a soma de poderes de 2. Continuar como antes: o maior poder de dois que não é mais que 21 é 16 2 4. Subtraí-lo: 21 - 2 4 5. Agora precisamos representar 5 como A soma dos poderes de 2. Continue como antes: a maior potência de dois que não é mais que 5 é 4 2 2. Subtraí-lo: 5 - 2 2 1. Podemos representar 1 como 2 0. Temos que 85 2 6 2 4 2 2 2 0. Isto é o mesmo que: 85 1 2 6 0 2 5 1 2 4 0 2 3 1 2 2 0 2 1 1 2 0. A representação binária de 85 é dada pelos coeficientes nesta representação listados Um após o outro, começando com a maior potência de 2: 1010101. Segundo método. Este método é baseado em duas observações. Primeira observação: o último dígito na representação binária é sempre o restante do número quando dividido por dois. Ou seja, é 1 se o número é ímpar, e 0 se é mesmo. Segunda observação: se apagarmos o último dígito de um número binário, obteremos um novo número binário que é igual a metade do número original, com a fração de 12 diminuída se o número original for ímpar. Por exemplo, considere o número n cuja representação binária é abcd é igual a a 2 3 b 2 2 c 2 1 d 2 0. Note então que n 2 (a 2 2 b 2 1 c 2 0) d. Então n é mesmo se d0 e ímpar se d1 (primeira observação). Observe também que se dividimos n por dois e deixamos cair qualquer fração de 12 (se d é ímpar), então temos um 2 2 b 2 1 c 2 0. que tem representação binária abc, que é o que você obtém se você apagar o Último dígito binário de n (segunda observação). Embora apenas provemos nossas observações com números binários de 4 dígitos, o mesmo argumento funciona independentemente de quantos dígitos possuímos. O número 85 é ímpar. Assim, o último dígito é 1. Subtrai 1, obtemos 84. Então dividindo 84 por 2 obtemos 42. Representação binária de 42 nos trará todos os outros dígitos na frente do último. Representação binária da representação binária de 42 1. O número 42 é par, portanto seu último dígito binário é 0. Dividindo 42 por 2 obtemos 21. Assim representação binária de representação binária de 21 01. 21s último dígito binário é 1 (como é estranho). Subtrair 1 e dividir por dois novamente: temos 10. Assim representação binária de representação binária de 10 101. 10s último dígito binário é 0. 5. Representação binária da representação binária de 5 0101. 5s último dígito binário é 1. Então 42 2. Representação binária da representação binária de 2 10101. 2s último dígito binário é 0. Dividindo 2 por 2, obtemos 1. Assim representação binária de representação binária de 1 010101. Agora, o dígito binário 1 representa o número 1. Assim, a representação binária de 85 é 1010101. Abaixo há uma janela interativa na qual você pode praticá-lo gera números aleatórios para você convertê-los para binário: Prática de conversão de decimais para binário Última modificação: agosto de 2008

No comments:

Post a Comment