Originariamente inviato da eonta
Salve a tutti del forum,
sono un nuovo utente con solamente 10 giorni di java sulle spalle..quindi mi scuso in anticipo se ho scritto castronerie.
Per riuscire a capirci qualcosa,oltre lo studio di alcuni manuali sto cercando di analizzare riga x riga alcuni esempi di esercizi per vedere di aver chiari i concetti,ma aimè questo proprio non lo capisco.
Ho cercato nel forum e su internet ma non sono riuscito a risolvere il mio dubbio ( forse xkè eccessivamente banale

).
Conversione da un intero positivo ad un binario:
...
char s;
final int base = 2;
int cif,num;
num = Console.leggiIntero();
while (num != 0)
{cif = num%base; // Mi restituisce le cifre binarie
num = num/base; // fa andare avanti il ciclo finchè la condizione è rispettata
s = (char) (cif + '0'); //Conversione da intero a carattere
Console.scriviUnCarattere(s);//risultato a video
}
Console.nuovaLinea();
}
}
Se non ho capito male le operazioni che il ciclo while farebbe se inserisco un numero a tastiera (es:18) dovrebbero esser queste:
18%2=0
18/2=9
9%2=1
9/2=4
4%2=0
4/2=2
2%2=0
2/2=1
1%2=1
1/2=0
Il mio dubbio però riguarda la conversione:
s = (char) (cif + '0');
Soprattutto non capisco la somma della codifica carattere '0' in pratica a cosa serve.
La conversione non va fatta moltiplicando il nuovo tipo fra parentesi tonde per il tipo che si vuole convertire?
Essendo un carattere 0 lo metto tra apici singoli,ma perchè sommato a cif?
Se lo tolgo e lascio la riga c = (char) cif, (sempre inserendo 18) mi appaiono 2 caratteri strani.
E' una cosa banale,lo so ma se non capisco la logica di quello che c'è scritto non vado da nessuna parte.
Grazie