Hallo zusammen,
habe eben an einer Funktion in C gesucht, um Zehnerpotenzen zu erzeugen.
Also ein Variable hat den Wert 3, dann möchte ich 1000 erhalten, bei 4
dann 10000 u.s.w.
Leider hat 10^Varriable nicht funktioniert.
Nach dem nachlesen in einem C-Buch habe ich gesehen, das ^ bitweise
exklusivoder ist.
Habe das Problem jetzt aufwendig in einer Schleife gelöst.
Frage: Gibt es in C wirklich keine Potenzen ?
Gruß Dirk
Funktioniert das auch mit Variablen? also 10ei? i ist hier die Variable.
Ich würde her zu pow() auf der math.h tendieren!
[EDIT]Ach, das die leute immer Editieren müssen, während ich schriebe...
Timmo H. schrieb:> Bei Konstanten macht es aber keinen Sinn, da so unnützer weise eine> Funktion zum berechnen aufgerufen wird.
In einer Hosted-Environment (was man ja eigentlich immer hat) wohl kaum.
Da ersetzt der Compiler auch so etwas durch Konstanten.
10e3 ist vom Typ float, also Vorsicht. 1000 ist nicht gleich 10e3. Auch
pow ist für Fließkommazahlen. Wenn man tatsächlich Integer will, muss
man sich also was anderes überlegen. Wenn's eh floats sein sollen, ist
pow die richtige Wahl.
Grüße,
Sven
Für die paar ganzzahligen Zehnerpotenzen, deren Ergebnis auch wieder in
einen int passt, lohnt sich da nix großartiges. Nimm ein Array, indziert
mit der Potenz die du brauchst und gut ists.
Hallo,
danke für die zahlreichen Antworten (hätte ich gar nicht mit gerechnet)
Der Hinweis mit dem Array ist super, mache ich dann so.
Thema beendet.
Gruß Dirk
Sven B. schrieb:> 10e3 ist vom Typ float, also Vorsicht. 1000 ist nicht gleich 10e3.
10³ = 1000. 10e3 = 1e4 = 10 * 1000 = 1 * 10000. Ich dachte soviel Mathe
kann man hier voraussetzen. Aber ich werde es dem nächst
berücksichtigen.
Karl schrieb:> Sven B. schrieb:>> 10e3 ist vom Typ float, also Vorsicht. 1000 ist nicht gleich 10e3.>> 10³ = 1000. 10e3 = 1e4 = 10 * 1000 = 1 * 10000. Ich dachte soviel Mathe> kann man hier voraussetzen. Aber ich werde es dem nächst> berücksichtigen.
Selfowned^^
Karl schrieb:> Sven B. schrieb:>> 10e3 ist vom Typ float, also Vorsicht. 1000 ist nicht gleich 10e3.>> 10³ = 1000. 10e3 = 1e4 = 10 * 1000 = 1 * 10000. Ich dachte soviel Mathe> kann man hier voraussetzen. Aber ich werde es dem nächst> berücksichtigen.
Er meinte das die beiden Zuweisungen
1
A=1000;
2
B=1E3;
nicht gleich sind. Und das sind sie auch nicht, da der Datentyp
unterschiedlich ist.
Karl schrieb:> 10³ = 1000. 10e3 = 1e4 = 10 * 1000 = 1 * 10000. Ich dachte soviel Mathe> kann man hier voraussetzen. Aber ich werde es dem nächst> berücksichtigen.
Meine Aussage stimmt trotzdem. ;)
Garl schrieb:> Aber verwirrend.
Ja stimmt, ich hab' mich auch tatsächlich verschrieben. Aber wenn man
schon kleinkariert sein muss, dann sollte man wenigstens echte Fehler
angreifen! ;)