Seite 1 von 1

Bits testen über macros

Verfasst: 02.10.2006 18:59
von Hellhound66

Code: Alles auswählen


; Author: hellhound66
; Date: 02. October 2006
; OS: Windows
; Demo: Yes

#BIT_0      = 1         :   #BIT_1      = 2*#BIT_0  :   #BIT_2      = 2*#BIT_1
#BIT_3      = 2*#BIT_2  :   #BIT_4      = 2*#BIT_3  :   #BIT_5      = 2*#BIT_4
#BIT_6      = 2*#BIT_5  :   #BIT_7      = 2*#BIT_6  :   #BIT_8      = 2*#BIT_7
#BIT_9      = 2*#BIT_8  :   #BIT_10     = 2*#BIT_9  :   #BIT_11     = 2*#BIT_10
#BIT_12     = 2*#BIT_11 :   #BIT_13     = 2*#BIT_12 :   #BIT_14     = 2*#BIT_13
#BIT_15     = 2*#BIT_14 :   #BIT_16     = 2*#BIT_15 :   #BIT_17     = 2*#BIT_16
#BIT_18     = 2*#BIT_17 :   #BIT_19     = 2*#BIT_18 :   #BIT_20     = 2*#BIT_19
#BIT_21     = 2*#BIT_20 :   #BIT_22     = 2*#BIT_21 :   #BIT_23     = 2*#BIT_22
#BIT_24     = 2*#BIT_23 :   #BIT_25     = 2*#BIT_24 :   #BIT_26     = 2*#BIT_25
#BIT_27     = 2*#BIT_26 :   #BIT_28     = 2*#BIT_27 :   #BIT_29     = 2*#BIT_28
#BIT_30     = 2*#BIT_29 :   #BIT_31     = 2*#BIT_30     ; Kann noch erweitert werden, bei Bedarf..


Macro CheckBit(__Var,__Bit)
    (__Var#&#BIT_#__Bit#)
EndMacro

a= #BIT_1|#BIT_3

If CheckBit(a,1)
    Debug "Bit 1 ist gesetzt"
EndIf

If CheckBit(a,5)
    Debug "Bit 5 ist gesetzt"
EndIf


Verfasst: 03.10.2006 14:23
von Deeem2031

Code: Alles auswählen

Macro CheckBit(__Var,__Bit) 
    (__Var#&(1<<__Bit)) 
EndMacro 

a= (1<<1) | (1<<3)

If CheckBit(a,1) 
    Debug "Bit 1 ist gesetzt" 
EndIf 

If CheckBit(a,5) 
    Debug "Bit 5 ist gesetzt" 
EndIf
;)

Verfasst: 03.10.2006 14:29
von DarkDragon
Ist aber nicht so schnell... :freak: Hellhound wollte nur auf die Schnelligkeit hinaus.

[EDIT]
Gut, man sollte auch Variablen statt Konstanten nutzen wenn man was dynamisches damit anfangen will.

Verfasst: 03.10.2006 15:08
von Hellhound66
Doch ist genauso schnell. Da haben wir mal ne Ecke, wo PB tatsächlich mal was optimiert. Hätt ich PB gar nicht zugetraut :mrgreen:

Verfasst: 03.10.2006 15:14
von DarkDragon
Hellhound66 hat geschrieben:Doch ist genauso schnell. Da haben wir mal ne Ecke, wo PB tatsächlich mal was optimiert. Hätt ich PB gar nicht zugetraut :mrgreen:
Achja? Und wieso schnautzt du mich dann im IRC so an das sei nicht so schnell und es ginge garnicht anders so schnell? Es kann wenn es dynamisch genutzt wird nicht genauso schnell gehen, soviel ist korrekt. Aber wenn es statisch gebraucht wird geht es genau so schnell.

Verfasst: 03.10.2006 18:10
von Deeem2031
Ich versteh die Aufregung nich, Hellhounds Version unterstützt doch garkeine Variablen. Von daher is die Diskussion darüber welches mit Variablen schneller sei völlig sinnlos. :roll:

Verfasst: 04.10.2006 13:45
von Hellhound66
Stimmt genau. Ich hab nur bis zur nächsten Ecke gedacht, ohne drumherum zu schauen.