Pular para o conteúdo principal
CalcMax

Conversor de decimal para binário

Resultado

10001

Binário

Valores posicionais
16 + 1

Um conversor de decimal para binário reescreve um número inteiro da base dez na base dois. O valor não muda, só a notação muda, e o método que leva até lá é a divisão repetida. Divida o número por dois, guarde o resto, divida o quociente por dois e siga assim até o quociente chegar a zero. Os restos são os algarismos binários — mas eles saem ao contrário, então o último resto anotado é o primeiro algarismo da resposta. Pegue 17: 17 ÷ 2 é 8 com resto 1, depois 8 ÷ 2 é 4 com resto 0, depois 4 ÷ 2 é 2 com resto 0, depois 2 ÷ 2 é 1 com resto 0, e por fim 1 ÷ 2 é 0 com resto 1. Lendo de baixo para cima, os restos são 1, 0, 0, 0, 1, então 17 se escreve 10001 em binário. É nessa inversão que mora a maior parte dos erros, e é por isso que a página imprime cada divisão em vez de imprimir só a resposta. Uma casa binária vale uma potência de dois, e ler a resposta de volta como a soma dessas potências é como se confere o trabalho: 10001 tem um 16 e um 1 e nada mais, e 16 + 1 é 17 outra vez. A direção importa igualmente quando o número fica mais curto — um inteiro que é potência de dois, como 16, sai como um único 1 seguido de zeros, e um que é uma unidade menos que uma potência de dois sai só com uns, então 15 é 1111 e 255 é 11111111.

Dividindo 17 por dois, uma etapa por vez, até o quociente chegar a zero

EtapaDivisãoQuocienteResto
117 ÷ 281
28 ÷ 240
34 ÷ 220
42 ÷ 210
51 ÷ 201

Isto é o método e não um resultado, e é por isso que ele fica fixo em 17 enquanto o painel acima converte o que você digitou. Leia a coluna do resto de baixo para cima e os algarismos da resposta aparecem em ordem: 1, 0, 0, 0, 1, que é 10001. A razão de a coluna precisar ser lida para cima é que cada divisão encontra o algarismo menos significativo do que sobrou; a primeira etapa fixa a casa das unidades, a segunda a casa dos dois, e assim por diante, de modo que as etapas percorrem a resposta da direita para a esquerda. A razão de o processo poder parar quando o quociente chega a zero é que um quociente zero significa que nada acima da casa atual está ligado. Dois detalhes que valem reparo nesta tabela: todo resto é 0 ou 1 e não pode ser outra coisa, porque o divisor é dois; e o quociente encolhe mais do que pela metade a cada etapa, e é por isso que a escada até para a maior entrada aceita tem só umas cinquenta linhas. Se você estiver convertendo outro número, siga as mesmas quatro colunas no papel — a tabela diz quais são as colunas, não quais serão os seus números.

Fórmula

17 ÷ 2 = 8 r 1 → 8 ÷ 2 = 4 r 0 → 4 ÷ 2 = 2 r 0 → 2 ÷ 2 = 1 r 0 → 1 ÷ 2 = 0 r 1 ⇒ 17 = 10001 = 16 + 1

17
O número inteiro a converter, escrito na base dez. Ele precisa ser inteiro: um separador decimal ou um separador de milhar é recusado em vez de arredondado, porque toda esta família de páginas trabalha com números inteiros
÷ 2
A etapa que se repete. Dois é a base para a qual você está convertendo, então cada rodada pergunta quantos dois cabem — e o que sobra é exatamente o algarismo que pertence àquela posição
quociente
A parte que segue para a etapa seguinte. O processo para quando o quociente chega a zero, e esse é o sinal de que nenhuma casa mais alta é necessária
resto
O algarismo produzido por aquela rodada. Dividir por dois só pode deixar 0 ou 1 para trás, e é por isso que a resposta sai em algarismos binários e não em algum outro conjunto de símbolos
⇒ 10001
Os algarismos montados de baixo para cima. O primeiro resto encontrado é o algarismo mais à direita e o último é o mais à esquerda, que é a única etapa deste método fácil de virar pelo avesso
16 + 1
A resposta lida de volta como valores posicionais binários: 10001 tem uns apenas nas casas do dezesseis e do um, então somar essas casas dá 17 outra vez. É essa a conferência que a página imprime, e ela funciona porque a soma dos valores posicionais de um número binário é o próprio número
53 bits
O comprimento máximo da resposta: 53 algarismos binários, o que dá 9.007.199.254.740.991 em decimal. Acima dessa largura uma máquina não consegue manter inteiros vizinhos separados, então uma entrada maior é recusada em vez de convertida em algo que só parece certo

Escrever um número na base dois aparece sempre que a notação da própria máquina precisa ser produzida à mão. Empacotar vários valores pequenos dentro de um único inteiro exige descobrir que bits cada valor ocupa, e isso começa com o valor em binário: um canal de cor, um conjunto de sinalizadores de permissão, um campo de bits num registrador de configuração. Quem lê uma folha de dados encontra a mesma tarefa pelo outro lado, porque as faixas e as máscaras ali impressas estão em hexadecimal ou em binário e o número de onde elas vieram é decimal. Em trabalhos escolares a direção costuma ser pedida diretamente — converta de decimal para binário e mostre o cálculo —, e a escada impressa é exatamente esse cálculo, uma linha por divisão. A mesma conversão responde a perguntas que não parecem conversões: quantos bits um valor deste tamanho precisa, qual potência de dois está logo acima dele, e por que um campo de oito bits vai de 0 a 255 e não até 256. Programadores que fazem isso de cabeça normalmente recorrem às potências de dois em vez da escada, subtraindo a maior potência que cabe e repetindo, e a saída desta página sustenta esse caminho também: cada subtração que dá certo deixa um 1 naquela posição, e a soma de valores posicionais impressa ao lado da resposta é justamente aqueles uns somados de volta.

Exemplos resolvidos

  1. Escrevendo 17 em binário

    1. 17 ÷ 2 = 8, resto 1 — anote o 1
    2. 8 ÷ 2 = 4, resto 0
    3. 4 ÷ 2 = 2, resto 0
    4. 2 ÷ 2 = 1, resto 0
    5. 1 ÷ 2 = 0, resto 1 — o quociente chegou a zero, então pare
    6. Leia os restos de baixo para cima: 1, 0, 0, 0, 1, que é 10001

    O caso padrão, e o que mostra a inversão: o primeiro resto encontrado é o último algarismo da resposta. Ler os restos na ordem em que foram produzidos dá 10001 ao contrário — e 10001 invertido é 10001 aqui só por sorte, então é no exemplo seguinte que a regra se confere. Conferindo: 16 + 1 = 17.

  2. Escrevendo um byte completo, 255

    1. 255 ÷ 2 = 127, resto 1
    2. 127 ÷ 2 = 63, resto 1 — e toda rodada depois desta também deixa 1
    3. 63 → 31 → 15 → 7 → 3 → 1, cada uma com resto 1
    4. 1 ÷ 2 = 0, resto 1 — oito rodadas ao todo
    5. Oito restos de 1, lidos de baixo para cima: 11111111

    255 é o maior valor que um campo de oito bits comporta, e a razão é esta: oito algarismos binários dão 2⁸ combinações, e a maior delas é 11111111. O outro lado do mesmo fato é que 256 é 100000000 — nove algarismos —, que é o número que não cabe num byte. A soma de valores posicionais é a régua inteira somada, e vale a pena vê-la uma vez por completo.

  3. Uma potência de dois, 16

    1. 16 ÷ 2 = 8, resto 0
    2. 8 ÷ 2 = 4, resto 0
    3. 4 ÷ 2 = 2, resto 0
    4. 2 ÷ 2 = 1, resto 0
    5. 1 ÷ 2 = 0, resto 1
    6. Leia de baixo para cima: um 1 seguido de quatro 0s, que é 10000

    Uma potência de dois produz exatamente um resto 1 e então para, e por isso a soma de valores posicionais se reduz a um único termo. É esta a forma que vale reconhecer: todo número que é potência de dois é, em binário, um único 1 seguido de zeros — e é por isso que as potências de dois são a unidade natural para larguras de campo, tamanhos de página e capacidades de buffer.

  4. Zeros à esquerda não mudam o valor

    1. Os zeros à esquerda da entrada ficam na frente do número decimal e não acrescentam nada
    2. A conversão é feita sobre 17, exatamente como no primeiro exemplo
    3. As duas saídas saem palavra por palavra iguais às de lá

    Zeros à esquerda são aceitos na entrada porque um número decimal muitas vezes é colado de algum lugar que o preencheu, e eles não mudam nada: zero centena continua sendo zero centena. O mesmo vale na direção contrária, quando um valor é preenchido até uma largura fixa de propósito — 00010001 num campo de oito bits é o mesmo número que 10001, e a página aceita qualquer uma das duas formas.

Limitações

Esta página converte apenas números inteiros. Um separador decimal é recusado em vez de arredondado, então 17.5 não pode ser convertido — uma leitura fracionária precisaria de uma segunda regra sobre quantos algarismos manter e como arredondar o último, e todas as páginas deste grupo traçam essa fronteira no mesmo lugar. Separadores de milhar também são recusados, então escreva 1500, não 1.500; a vírgula é lida como separador decimal em algumas línguas, e adivinhar entre as duas leituras é pior do que perguntar. A entrada pode ter no máximo 9.007.199.254.740.991, que dá 53 algarismos binários; um valor maior não pode ser guardado exatamente por uma máquina e é recusado com uma mensagem, em vez de virar algo que se parece com uma resposta. Zeros à esquerda e um sinal de menos na frente são aceitos, e o sinal sai nas duas leituras: −17 dá −10001 e −(16 + 1). A página imprime a escada de divisões de 17 na tabela abaixo, que é fixa e não acompanha o número digitado — o painel responde ao seu número, a tabela mostra o método. A direção oposta, ler um número binário de volta como decimal, é uma página separada, e esta não faz nenhuma conta sobre o resultado. As duas saídas — o número binário e a soma de valores posicionais — são impressas como texto, algarismo por algarismo, sem separador de milhar: para uma entrada que chega a 1.024, o painel imprime 1024. A separação de milhar existe na prosa desta página, que escreve 1.024, e não na resposta impressa.

Perguntas frequentes

Como eu converto um número decimal para binário à mão?
Divida por dois, anote o resto, depois divida o quociente por dois e repita até o quociente ser zero. Para 17 isso dá os restos 1, 0, 0, 0, 1 — e, como cada etapa produz o algarismo seguinte a partir da direita, você os lê de baixo para cima para chegar a 10001. A alternativa que muita gente acha mais rápida é subtrair a maior potência de dois que cabe, marcar um 1 naquela posição e repetir com o que sobrou; as duas dão os mesmos algarismos, e a soma de valores posicionais impressa nesta página é o que o segundo método deixa para trás.
Por que os restos são lidos de baixo para cima?
Porque a primeira divisão responde a uma pergunta sobre a menor casa, e não sobre a maior. Dividir 17 por dois pergunta quantos dois cabem nele e o que sobra — e o que sobra é o algarismo das unidades, porque é a parte que não conseguiu formar um dois. A etapa seguinte faz a mesma pergunta sobre os dois, e o que ela deixa é o algarismo dos dois. As etapas, portanto, caminham do algarismo mais à direita para o mais à esquerda, e lê-las na ordem em que foram escritas dá a resposta invertida.
Posso converter um número decimal com parte fracionária?
Aqui não. Esta página aceita números inteiros, então 17.5 é recusado em vez de arredondado. As frações em binário são bem definidas — as posições à direita do ponto valem um meio, um quarto, um oitavo —, mas uma página que as aceitasse teria de decidir quantas manter e como arredondar a última, e todas as páginas deste grupo convertem números inteiros. Isso mantém a fronteira no mesmo lugar em todas elas, de modo que um valor nunca é aceito por uma página e recusado por outra.
Qual é o maior número decimal que posso converter aqui?
9.007.199.254.740.991, cuja forma binária são 53 uns. O limite não é uma escolha desta página: nessa largura uma máquina deixa de conseguir distinguir números inteiros vizinhos, então uma resposta mais longa não poderia ser confiada e é recusada com uma mensagem em vez de convertida. O mesmo teto aparece na página de leitura como um limite de 53 algarismos e em hexadecimal como catorze, porque é um único limite escrito em três bases.
Por que a página imprime uma soma de valores posicionais além do número binário?
Para que a resposta possa ser conferida em vez de aceita sob palavra. O número binário é o que você pediu, mas não há como distinguir um 10001 correto de um errado só de olhar para ele. Somar os valores posicionais que ele ocupa — 16 e 1 aqui — devolve o número com que você começou, que é a conversão feita ao contrário. Se a soma não voltar ao seu número, a cadeia binária está errada, e você sabe disso sem precisar de uma segunda ferramenta. Vale lembrar que essa soma é impressa como texto, sem separador de milhar, então valores posicionais de quatro algarismos aparecem nela como 1024, e não como 1.024.
Existe um jeito mais rápido do que dividir repetidamente?
Para os números que você encontra com frequência, sim: decore as potências de dois até 1.024 mais ou menos e subtraia a maior que couber. 17 recebe 16 e deixa 1, então a resposta é 10001 antes de você ter escrito uma única divisão. A escada é melhor quando o número não é familiar, porque não exige nenhuma conta que você possa errar — dividir por dois repetidamente é mecânico. Os dois métodos terminam nos mesmos algarismos, e nenhum é mais correto do que o outro.

Referências

Calculadoras relacionadas