Quadrat-Berechnung (^)
-
Hallo,
Ich bin grad am verzweifeln, ich will das Quadrat von 2^16 rechnen (Ich weiß, irgendwas mit 65...) Das Problem ist: In VB funktioniert das (^) Zeichen.
In C++ muss es doch was anderes geben. Hab in Google gesucht, aber da kommt irgendwas mit Magisches Quadrat...Hoffe jemand kann mir helfen.
Lg Mentras
-
pow(..) aus dem cmath header.
http://www.cplusplus.com/reference/clibrary/cmath/
-
Hmm...
Das man dafür eine Header-Datei einfügen muss,... nagut muss mich daran gewöhnen.
Danke theta!
P.S.: Die Site ist echt gut
Danke nochmal!
Lg Mentras
-
Die Potenzfunktion wird zu selten benötigt, als dass eine Aufnahme in den Sprachumfang gerechtfertigt wäre. Ausserdem ist der Operator ^ bereits für bitweises XOR belegt.
-
Wobei man 2**16 auch über Bitshift-Operationen hinbekommen kann:
1 << 0 => 1 1 << 1 => 2 1 << 2 => 4 1 << 3 => 8 1 << 4 => 16 1 << 5 => 32 ... 1 << 16 => 65536
Grüssli
-
^ ist in C++ übrigens bitweises, exklusives Oder, nur so zur Info (wird irgendwie sehr gerne zum Potenzieren verwendet
)...
-
Beim kompilieren, gibt er mir "komischerweise^^" einen Fehler aus...
#include <iostream> #include <math.h> using namespace std; int main() { int zahl_1,zahl_2, ergebnis; cout << "Gib die erste Zahl aus: " << endl; cin >> zahl_1; zahl_1 = pow (zahl_1,2); cout << "Gib die zweite Zahl aus: " << endl; cin >> zahl_2; zahl_2 = pow (zahl_2,2); ergebnis = zahl_1 * zahl_2; cout << "Das Ergebnis ist: " << ergebnis << endl; }
Hab ich das
pow(zahl_1,2)
falsch eingesetzt?
Lg Mentras
-
Lesen.
Für deine Typen existiert keine Überladung.Und wieso hast du jetzt
<math.h>
inkludiert? Die Rede war von<cmath>
...Beim nächsten Mal darfst du uns den Compilerfehler übrigens mitteilen.
-
Oh backe,... Sorry mein Fehler, dennoch klappt es noch nicht.
Wie meinst du das?
Für deine Typen existiert keine Überladung.
Fehler 1 error C2668: 'pow': Mehrdeutiger Aufruf einer überladenen Funktion c:\users\mentras\documents\visual studio 2008\projects\visual c++ projects\produkt von quadrierten zahlen\produkt von quadrierten zahlen\code-datei.cpp 10
Lg Mentras
-
Edit: Auf deinen Edit reagiert.
Ich meine das so, dass die Funktion für die Typen, die du verwendest (
int
,int
) nicht überladen ist.
-
Nexus schrieb:
Ich meine das so, dass die Funktion für die Typen, die du verwendest (
int
,int
) nicht überladen ist.Ich füge sogar noch den expliziten Link dazu:
http://www.cplusplus.com/reference/clibrary/cmath/pow/Und kopiere noch die vorhanden Überladungen rein:
double pow ( double base, double exponent ); long double pow ( long double base, long double exponent ); float pow ( float base, float exponent ); double pow ( double base, int exponent ); long double pow ( long double base, int exponent );
Nur damit Mentras es nicht überliest
@Mentras,
Siehst du da irgendwo ein "int, int"? Also ich nichtGrüssli
-
€dit:
Danke Dravere
Hab´s verstanden!!!!
Dankööö
War echt verzweifelt: http://www.youtube.com/watch?v=gbbIoerIcj4&NR=1
Lg Mentras
-
Mir scheint merkwürdig, dass auf www.cplusplus.com keine Überladung
float pow(float base, int exponent);
verzeichnet ist. Gibt es die nicht? MSVC++ unterstützt sie zumindest...
-
Nexus schrieb:
Mir scheint merkwürdig, dass auf www.cplusplus.com keine Überladung
float pow(float base, int exponent);
verzeichnet ist. Gibt es die nicht? MSVC++ unterstützt sie zumindest...
Hab mal schnell in nem leicht veralteten Link geguckt. Zumindest im FD von 1998 ist sie drin. Ich glaube nicht, dass sie später danach entfernt wurde.
Greetz
-
@Nexus,
Hmmm, im C++ Standard 2003 steht:5 In addition to the double versions of the math functions in <cmath>, C + + adds float and long
double overloaded versions of these functions, with the same semantics.
6 The added signatures are:...
float pow (float, float);
float pow (float, int);...
double pow(double, int);
...
long double pow (long double, long double);
long double pow (long double, int);Scheint also korrekt zu sein von MSVC und ein Fehler in der Referenz.
Grüssli
-
[OT]
Sorry, aber das muss jetzt sein:Dravere schrieb:
Bitschift
[/OT]
-
drakon schrieb:
[OT]
Sorry, aber das muss jetzt sein:Dravere schrieb:
Bitschift
[/OT]
Die Schandtat wurde entfernt :p
Grüssli