Originariamente inviato da zipangulu
è sbagliata la condizione ed operi in modo errato all'interno del ciclo , fai tipo:

codice:
while(ris > 0) {        
        resto = ris % 2;
        ris/=2;
        System.out.print (resto);
}
ma in questo modo viene stampato il numero nell'ordine opposto , per scriverlo nell'ordine giusto potresti appoggiarti a uno StringBuilder e al termine del ciclo stampare la stringa da esso ottenuta dopo averla invertita

codice:
StringBuilder sb = new StringBuilder ();
while(ris > 0) {        
        resto = ris % 2;
        ris/=2;
        sb.append (resto);
}
... 
System.out.println (sb.reverse ().toString ());
come gliel'ho scritto io funziona (il ciclo), non ho testato il reverse