C Exponentialfunktion in For-Schleife auch ohne Math.h möglich?

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Hallo ich würde gerne in einer for-Schleife den index i folgendermaßen durchlaufen lassen
1. Durchlauf: i = 2^0 = 1
2. Durchlauf: i = 2^1 = 2
3. Durchlauf: i = 2^2 = 4
4. Durchlauf: i = 2^3 = 8
5. Durchlauf: i = 2^4 = 16
6. Durchlauf: i = 2^5 = 32
7. Durchlauf: i = 2^6 = 64
8. Durchlauf: i = 2^7 = 128

Leider ist ja in C der ^-Operator schon für ein XOR reserviert.
Wie kann ich das trotzdem realisieren? Brauche ich dafür eine Funktion in Math.h?

Weiß nicht sowirklich, wonach ich in der SuFu suchen soll, um ein passenden Thread zu finden.

Danke schon mal :)
 
Schreib dir einfach eine Funktion die als Parameter die Zahl und einen Exponenten erwartet. Dann multiplizierst du in die Zahl in einer Schleife mit sich selbst, wobei die Anzahl der Durchläufe vom Exponenten abhängt.
 
Das ist doch i*2 oder i+i.
Wieso geht es nicht damit?
 
iks-deh schrieb:
Schreib dir einfach eine Funktion die als Parameter die Zahl und einen Exponenten erwartet. Dann multiplizierst du in die Zahl in einer Schleife mit sich selbst, wobei die Anzahl der Durchläufe vom Exponenten abhängt.

Square-And-Multiply. Kennste? Aber für maximal 64 Bit dann vermutlich doch Perlen vor die Säue.
Ergänzung ()

raven16 schrieb:
du meinst also:
for(i=1;i<=128;i<<1)
{

}

ich glaub das ist auch die beste Lösung

Wofür die geschweiften Klammern? Findest du sie so schön, dass sie da einfach hin mussten? :(

€: Ach streicht den letzten Edit. Hätte vielleicht etwas weniger überfliegen sollen :/
 
Zuletzt bearbeitet:
Zurück
Oben