Potenzen

Hallo!
Ich schreibe gerade ein Programm, das u.a. einen JSlider anzeigt und ein Label um dessen berechneten Wert zu präsentieren.
Da es hier um Schlüsselgrößen geht, fängt der Slider bei 0 -> 1024 an und wächst dann je um den Faktor 2.
Logischerwiese wäre dann der Algorithmus:
long val = 1024*2^sizeSlider.getValue();
oder kürzer (da log2(1024)=10)
long val = 2^(sizeSlider.getValue()+10);
Leider zeigt diese Methode bei mir nur komische Werte an.
Die (maschinennähere, aber dennoch mathematisch äquivalente) Variante
String val = 1

Moin,

das könnte daran liegen, dass Java für Potenzen gerne die Methode Math.pow(double a, double b) hören möchte:
http://java.sun.com/javase/6/docs/api/java/lang/Math…

Versuch’s einfach mal damit.

Gruß,
Puni

Hallo.

long val = 2^(sizeSlider.getValue()+10);
Leider zeigt diese Methode bei mir nur komische Werte an.
Die (maschinennähere, aber dennoch mathematisch äquivalente)
Variante
String val = 1

Hi,
Oh :smile:
Das sind halt die Überbleibsel von C++…
mfg, Hans

Moin,

Hi,

das könnte daran liegen, dass Java für Potenzen gerne die
Methode Math.pow(double a, double b) hören möchte:
http://java.sun.com/javase/6/docs/api/java/lang/Math…

Versuch’s einfach mal damit.

Vielen Dank, das funktioniert. (Die bitshift-Methode funktioniert halt nur für Zweierpotenzen)

Gruß,
Puni

mfg, Hans