Code: Alles auswählen
Macro sig(X)
(X>0)-(X<0)
EndMacro
Debug sig(-12.5)
Debug sig(-1234567890123456789)
Debug sig(-7)
Debug sig(-1)
Debug sig(0)
Debug sig(1)
Debug sig(7)
Debug sig(1234567890123456789)
Debug sig(12.5)
Code: Alles auswählen
Macro sig(X)
(X>0)-(X<0)
EndMacro
Debug sig(-12.5)
Debug sig(-1234567890123456789)
Debug sig(-7)
Debug sig(-1)
Debug sig(0)
Debug sig(1)
Debug sig(7)
Debug sig(1234567890123456789)
Debug sig(12.5)
Meine Version hat noch Klammern außenrum:jear hat geschrieben:... oder 11Code: Alles auswählen
Macro sig(X) (X>0)-(X<0) EndMacro
Code: Alles auswählen
Macro sgn(X)
((X>0)-(X<0))
EndMacro
Code: Alles auswählen
3*sgn(-5)
Jup. Ich find's aber trotzdem toll, dass AND51 das (fast) allein herausgefunden hat.jear hat geschrieben:Hat aber schon einen sehr langen Bart...
Mir ist mittlerweile eine passende Antwort darauf eingefallen:Kaeru Gaman hat geschrieben:dass ein einziges ~~ das erledigt, wär mal ne ganz neue feature.
PS:
das Not Not mag diese funktion ausüben, so wie auch das And 1
aber ~ ist nunmal bitwise und nicht boolean.
Code: Alles auswählen
Define a = $FF ; Hex, 255
Define b = %101 ; Binär, 5
Wie gesagt, die Boole'schen Ausdrücke, mit denen ich ja weiterrechne sind immer 0 oder 1, werden dann 2 mal ge-Not-ted um dann damit weiterzurechnen.Beispiel:
; Zeigt die Benutzung mit Binär-Zahlen, da es so leichter ist, das Ergebnis zu sehen
a.w = ~%1000 ; Ergebnis wird %0111 sein
b.w = ~%1010 ; Ergebnis wird %0101 sein
Kaeru Gaman hat geschrieben:es kann sein, dass es [nur] zufälliger weise funktioniert
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Code: Alles auswählen
a.l = 5
debug ~a ;-6
debug ~~a ; 5
Code: Alles auswählen
If a
endif
;ist das gleiche wie:
if a<>0
endif
Code: Alles auswählen
Macro sgn(X)
((X>0)-(X<0))
EndMacro
Dann frage ich mich, warum AND51 in diesem Thread dauernd von Bit-Operationen schreibt, und als "Lösung" seiner selbst gestellten Aufgabe schreibt:Hellhound66 hat geschrieben:Hat auch keiner behauptet..
Code: Alles auswählen
Macro sgn(x)
(-(~~x<0)+(x>0))
EndMacro