Como converter 734 de decimal para binário?
RESPOSTA COM EXPLICAÇÃO
Preciso converter 734 de Decimal para Binário. Eu sei que a ordem para a conversão é colocar todas as bases de 2 até chegar a base onde o valor maior que o número a ser convertido será excluído e o próximo será contado.
Exemplo:
1024 512 256 128 64 32 16 8 4 2 1
0 1 0 0 0 0 0 0 0 0 0
A partir daí eu subtraio 734-512= 222 e assim por diante...
A formula eu entendi, porém quando chego na subtração de 222-128=94 eu não consegui entender como funciona o resto.
Teoricamente, no exemplo que estou dando ficaria...
1024 512 256 128 64 32 16 8 4 2 1
0 1 0 1 0 0 0 0 0 0 0
222-128=94
Qual será o próximo bit a ser ativado e porque?
94 é maior que 64, porém o bit abaixo de 128 já foi ativado...
Soluções para a tarefa
Resposta:
0010 1101 1110
Explicação:
Para converter um número DECIMAL para BINÁRIO sempre faça a pergunta para o BINÁRIO se o bit correspondente é maior que o resto da subtração. Usando a lógica que você apresentou vejamos:
Vamos utilizar o como base de cálculo um NIBLE, que corresponde a 4 bits digitados:
0000 0000 0000 - onde cada bit corresponde a:
2048-1024-512-256 128-64-32-16 8-4-2-1
Agora vamos buscar o número a ser convertido que é 734 perguntando ao BINÁRIO se ele é MAIOR. Se o binário é MAIOR que o número que estamos buscando isso quer dizer que aquele bit é ZERO porque não dá para subtrair o menor valor de um valor maior vejamos:
2048 é maior que 734... A resposta é verdadeira então o bit é ZERO veja
734 - 2048 = ???? não pode haver bit negativo
0
O próximo é 1024: 734 - 1024 = ???
00
Próximo: 512: Aqui 512 é MENOR que o número que buscamos, portanto falso:
734 - 512 = 222 - se o bit correspondente ao 512 foi usado então é 1
001
Próximo 256: 256 é MAIOR que 222? Verdadeiro... Então é ZERO
0010
Próximo: 128: Agora o resto da subtração é 222, onde 128 é MENOR então
222 - 128 = 94
0010 1
Próximo 64: Pergunta 64 é MAIOR que 94 - falso então
94 - 64 = 30
0010 11
Próximo 32: 32 é MAIOR que 30 - verdadeiro então é ZERO
30 - 32 = ???
0010 110
Próximo 16: 16 é MAIOR que 30 - Falso, então é 1
30 - 16 = 14
0010 1101
Próximo 8: 8 é MAIOR que 14 - Falso, então é 1
14 - 8 = 6
0010 1101 1
Próximo 4: 4 é MAIOR que 6 - Falso, então é 1
6 - 4 = 2
0010 1101 11
Próximo 2: 2 é MAIOR que 2 - Falso é igual, então é 1
2 - 2 = 0
0010 1101 111
Próximo 1: 1 é MAIOR que 0 - Verdadeiro, então é 0
0010 1101 1110
Pode ser feito ao contrário também, mas a pergunta deve ser feita para o DECIMAL e não para o BINÁRIO. Questionando o binário se o binário é MAIOR que o DECIMAL o bit será ZERO senão será UM.
Espero ter ajudado