Hallo,
ich weiß, dass in Java die Anzahl der ints endlich ist und damit wird die Antwort auf meine Frage wohl auch zu tun haben.
Ich habe eine Methode geschrieben, um für natürliche Zahlen und 0 a und n die Potenz a^n zu berechnen.
Wenn ich allerdings 2^31 damit berechnen möchte, ergibt das eine negative Zahl.
Könnte mir jemand erklären, was da abläuft, sodass da eine negative Zahl entsteht?
(Ich bekomme -2147483648 raus, wobei der Betrag davon 2147483648 aber korrekt wäre laut WolframAlpha)
Danke und viele Grüße
Hier der Code, falls das hilft:
ich weiß, dass in Java die Anzahl der ints endlich ist und damit wird die Antwort auf meine Frage wohl auch zu tun haben.
Ich habe eine Methode geschrieben, um für natürliche Zahlen und 0 a und n die Potenz a^n zu berechnen.
Wenn ich allerdings 2^31 damit berechnen möchte, ergibt das eine negative Zahl.
Könnte mir jemand erklären, was da abläuft, sodass da eine negative Zahl entsteht?
(Ich bekomme -2147483648 raus, wobei der Betrag davon 2147483648 aber korrekt wäre laut WolframAlpha)
Danke und viele Grüße
Hier der Code, falls das hilft:
Java:
public static int berechnePotenz(int a, int n)
{
if (a==0)
{
return 0;
}
if ((a != 0) && (n == 0))
{
return 1;
}
if (n > 0)
{
return a * berechnePotenz(a, n - 1);
}
else
{
return 1;
}
}