Encontrei dificuldade para fazer um numero inteiro qualquer ser convertido em binário.
Basicamente quero fazer deste modo:
[b]System.out.println ("\nDigite o numero decimal a ser convertido para Binario:");
System.out.print("Numero: ");
Number = sc.nextInt ();
System.out.println ("\n\nO Numero " + Number + " em Binario fica: ");
while (Number != 0)
{
Modulo = Number%2;
System.out.print (Modulo);
ArmazenarBin = (Number - Modulo)/2;
Number = ArmazenarBin;
}
[/b]
[size=18][color=red]O problema: [/color][/size]
Quando digito, por exemplo, o inteiro 60 o Binário é apresentado como: 001111.
Mas o Binário de 60 é justamente o contrário disto, ou seja, é: 111100.
como faço para imprimir esse valor de modo “espelhado” ??
por exemplo, quero que o numero [color=red]1234[/color] seja impresso como [color=red]4321.[/color]
Agradeço a ajuda de voces.
[color=green]
* Nao posso utilizar outros meios que nao sejam as estruturas DO, WHILE, DOWHILE, FOR, IF e ELSE.[u][/color]
relembrando o algoritmo de conversão decimal-binário:
São divisões sucessivas do quocientes gerados a partir da divisão do número que se deseja converter até q esse quociente alcance zero. O número em binário será o inverso daquela “escadinha” de restos
O seu algoritmo está fazendo isso, exceto a parte que ele pega os restos de forma inversa ( ele percorre a “escadinha” de restos de cima p/ baixo, o q seria p/ ser ao contrário). Te aconselho ao invés de imprimir tudo de uma vez, ir colocando os restos em uma estrutura LIFO (pilha, por exemplo) aí vc já teria a sequencia de forma inversa