wie kann ich folgendes mit PureBasic berechnen:
15 ^ 48
"^" gibt es ja nicht als Operator
Gruß
Justin

Code: Alles auswählen
Debug Pow(15,48)
Code: Alles auswählen
(1 + 1)*2^48 + 1*2^32 + 1101*2^16 + 28106Code: Alles auswählen
;(1 + 1)*2^48 + 1*2^32 + 1101*2^16 + 28106
Define.q i = (1 + 1) << 48 + 1 << 32 + 1101 << 16 + 2816
Debug iCode: Alles auswählen
Procedure.q PowQ(basis.i, exponent.i)
Protected rest, powq.q
If (exponent > 2)
; e gerade: b^e = (b^(e/2))^2
; e ungerade: b^e = (b^((e-1)/2))^2 * b
rest = exponent & 1 ; rest = exponent % 2
exponent >> 1 ; exponent = exponent / 2
powq = PowQ(basis, exponent)
powq * powq
If (rest <> 0)
powq * basis
EndIf
ProcedureReturn powq
ElseIf (exponent = 2)
ProcedureReturn basis * basis
ElseIf (exponent = 1)
ProcedureReturn basis
ElseIf (exponent = 0)
ProcedureReturn 1
Else
; Fehler!
ProcedureReturn 0
EndIf
EndProcedure
Debug PowQ(15, 12)
Debug Pow (15, 12)
Debug PowQ(2, 62) + PowQ(2, 1)
Debug StrD(Pow(2, 62) + Pow(2, 1),1) + " <- Fehler bei Pow"
Debug PowQ(-3, 13)
Debug Pow (-3, 13)

padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Code: Alles auswählen
Debug PowQ(0, 0)
Debug Pow (0, 0)Code: Alles auswählen
ElseIf (exponent = 0)
If (basis = 0)
ProcedureReturn 0
Else
ProcedureReturn 1
EndIfCode: Alles auswählen
ElseIf (exponent = 0)
ProcedureReturn 1

padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen