17. Schlüsselwörter

Submitted by javafrage on Fri, 12/30/2011 - 15:34

Nennen Sie soviele Java Schlüsselworte wie möglich!

Niveau 1
Schwierigkeitsgrad mittel
Zeit

3 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 16.: Erste ganze Zahl größer Null die man noch mit int darstellen kann aber nicht mit float Typen

16777217

Erklärung

Der Typ int kann alle ganzen Zahlen bis 231-1 darstellen (Siehe)

Der Typ float kann alle ganzen Zahlen darstellen solange der Exponent 20 ist. Wird der Exponent zu 21,  kann der Typ float nur noch jede zweite Zahl genau darstellen.

Der größte Wert den man im Typ float in der Mantisse beschreiben kann ist hat alle 23 Bits gesetzt. Der Wert is also 224-1=16777215.

float kann also noch (224-1)*20 = 16777215 darstellen.

Der nächste Wert kann float auch noch darstellen: 224=16777216. Hier wird ein größerer Exponent verwendet und eine 1 steht in der Mantisse.

Die nächste Zahl 16777217 kann aber von float nicht mehr dargestellt werden. Der Exponent muss größer als 20 sein, da die Mantisse nicht mehr ausreicht. Ist der Exponent aber 21 kann man nur noch jede zweite Zahl genau repräsentieren. Ist der Exponent 22, kann man nur noch jede vierte Zahl genau repräsentieren.

Eine mögliche Implementierung

package javafrage;

public class IntVersusFloat {

public static void main(String[] args) {
int i=0;
float j=0.0f;
while (i==(int)j) {
j++;
i++;
}
System.out.println("i: "+i+", j: "+j);
double k = (int)Math.pow(2, 24);
System.out.println(k);
}
}