Hier mal (m)eine Prozedur, die die Quersumme einer Ganzzahl ermittelt:
Code: Alles auswählen
Procedure Quersumme(zahl.q)
If zahl < 0
zahl=-zahl
EndIf
Protected string.s=StrQ(zahl), *zahl.Character=@string, result.l
While *zahl\c
result+PeekC(*zahl)-48
*zahl+SizeOf(Character)
Wend
ProcedureReturn result
EndProcedure
Debug quersumme(-123)
Vielleicht könnt ihr mir ja helfen, diese Prozedur zu verbessern? Ich würde gern auf die einzelnen Ziffern der Zahl zugreifen können, ohne die Zahl vorher in einen String konvertieren zu müssen. Außerdem muss es doch bestimmt eine elegantere Lösung dafür geben, wenn die Zahl negativ ist? Vielleicht irgendeine Bit-Operation?