Und hier noch einmal ein Programmbeispiel in VB-Script mit der Systemfunktion SchiebenUndMaskieren (ShiftAndMask):
Code:
' SchiebenUndMaskieren
' Quellvariable <Variable>
' Zielvariable <Variable>
' Zu schiebende Bits <Konstante>
' Zu maskierende Bits (Dezimalnotierung) <Konstante>
'
' Quellvariable
' Der Wert dieser Variable wird geschoben und maskiert.
'
' Zielvariable
' Das Ergebnis wird in diese Variable geschrieben.
'
' Zu schiebende Bits
' Wenn 'Zu schiebende Bits' positiv ist, dann werden die Bits
' nach rechts geschoben, andernfalls werden sie nach links
' geschoben. Die gesamte Bitdarstellung wird geschoben,
' einschließlich ein mögliches Vorzeichenbit.
'
' Zu maskierende Bits
' Die 'Zu maskierenden Bits', mit denen das Ergebnis der
' Schiebeoperation maskiert wird. Jedes Bit wird bitweise
' durch UND verknüpft.
Dim Quellvariable
Dim Zielvariable
Quellvariable = SmartTags("Statusbyte")
ShiftAndMask Quellvariable, Zielvariable , 4, 1
If Zielvariable Then
SetBitInTag SmartTags("Steuerbyte"), 2
Else
ResetBitInTag SmartTags("Steuerbyte"), 2
End If
Oder:
Code:
' SchiebenUndMaskieren
' Quellvariable <Variable>
' Zielvariable <Variable>
' Zu schiebende Bits <Konstante>
' Zu maskierende Bits (Dezimalnotierung) <Konstante>
'
' Quellvariable
' Der Wert dieser Variable wird geschoben und maskiert.
'
' Zielvariable
' Das Ergebnis wird in diese Variable geschrieben.
'
' Zu schiebende Bits
' Wenn 'Zu schiebende Bits' positiv ist, dann werden die Bits
' nach rechts geschoben, andernfalls werden sie nach links
' geschoben. Die gesamte Bitdarstellung wird geschoben,
' einschließlich ein mögliches Vorzeichenbit.
'
' Zu maskierende Bits
' Die 'Zu maskierenden Bits', mit denen das Ergebnis der
' Schiebeoperation maskiert wird. Jedes Bit wird bitweise
' durch UND verknüpft.
Dim Quellvariable
Dim Zielvariable
Quellvariable = SmartTags("Statusbyte")
ShiftAndMask Quellvariable, Zielvariable , 0, 16
If Zielvariable Then
SetBitInTag SmartTags("Steuerbyte"), 2
Else
ResetBitInTag SmartTags("Steuerbyte"), 2
End If
Gruß Kai
Bookmarks