entweder failt int oder ich...

Stratocaster

Mitglied
Hallo an alle hier erstma 🙂
also, hier ist der Code:
Java:
public class asd
{
    public int bla()
    {
        return 66500*66500+4*205;
    }
}
Das wars auch schon.
Das Problem ist, dass ich bei Aufruf der Methode bla() die Zahl 127283524 bekomme, und das ist falsch.
Die richtige Antwort ist 4422250820.
Ist das jetzt, weil "int" nicht mit so großen Werten rechnen kann, oder hab ich einen Fehler?
Danke!
 
Code:
Integer.MAX_VALUE
ist
Code:
2147483647
(2^31 - 1), von daher ist die Zahl zu groß, ja. Versuch es mit Long, das ist deutlich größer (2^63 - 1), der Code würde dann zum Beispiel so aussehen (keine Garantie, dass das "schön" oder "optimal" ist):

Java:
	public static long bla() {
		return 66500L * 66500L + 4L * 205L;
	}
 
Die Aussage dass der Wertebereich 2^31 ist, ist nunmal falsch 😉 Darauf war wohl das nein bezogen. Wie schon erwähnt ist der Wertebereich 2^32 (4 byte).
Code:
2^31 - 1
ist der maximale Wert eines ints. Das wurde sicherlich verwechselt.
 
ums mal aus der insel zu zitieren

datentypgröße : 32bit
numerischer wertebereich : -(2^31) bis +(2^31)-1 da alle primitiven datentypen in java grundsätzlich signed sind
 

Zurück
Oben