int valor = 0;
int resto = 0;
System.out.println("valor:");
valor = s.nextInt();
do {
resto = valor % 2;
valor = valor / 2;
System.out.print(resto);
}while (valor > 0);
}
Se eu inserir 52 o valor me retornará 001011
Mas eu quero que me retorne o inverso 110100. tem como?
Veja a ordem que a divisão ocorre. Você está dividindo 52 por 2, isso tem resto 0 e resultado 26. Coincidentemente, o resto da divisão de 26 por 2 é 0 e resulta em 13. Aí sim você tem resto 1 e resultado 6. Daí temos resto 0 e valor 3. Então resto 1 e valor 1.
Ou você armazena tudo em um SrtringBuffer e retorna o inverso ou você faz os cálculos de maneira diferente.
Ao invés de dar o system.out, jogaria os dados em um array de int, e quando fosse printar jogaria o array em um if decrescente.