Bitte erläutern Sie, was genau passiert, wenn die folgenden Codeabschnitte ausgeführt werden:
int a='\15';
System.out.println(a);
dies druckt 13 aus;
int a='\25';
System.out.println(a);
dies druckt 21 aus;
int a='\100';
System.out.println(a);
dies druckt 64 aus.
int a='\15'
Erstellt zuerst eine char
auf der Oktalzahl basierende Zahl "15" (Dezimalzahl 13, als Zeichen die ASCII "Wagenrücklauf"), die Sie dann in eine int
Ganzzahl umwandeln. Dies ist legal, da Zeichen 16-Bit-Ganzzahlen sind. Es handelt sich also um einen sicheren Upcast, und Java gibt keine Hinweise zum Casting aus. Die anderen Antworten decken bereits die gesamte Oktal- / Dezimalsache ab.