allora, in ordine:
risultato = decimale e' dovuto al fatto che modificando il tuo codice in ftretta ho introdotto una variabile di appoggio superflua che in realtā non serve, il codice potrebbe essere:
Codice:
String s = new String();
do
{
resto= decimale%2;
decimale= decimale/2;
s+=resto;
}while (decimale != 0);
il tuo codice non va bene perche' altrimenti a ogni passaggio nel ciclo do-while esegui sempre le medesime operazioni dato che non aggiorni mai il valore della variabile su cui operi