Ja, indem du eine Bitmaske mit AND verknüpfst
Beispiel:
Dim i As Integer
Dim mask As Integer
i= 12
mask = 4
If (i And mask ) = mask Then
Messagebox "Bit 3 war gesetzt"
End If
Danke euch beiden. Wobei Umis Lösung für diesen spezifischen Fall wohl eleganter ist:
Funktioniert:
Sub Initialize
Dim testVar(3) As Integer
Dim mask As Integer
Dim i As Integer
Dim exponent(3) As Integer
testVar(0) = 7
testVar(1) = 3
testVar(2) = 9
testVar(3) = 12
exponent (0) = 2
exponent (1) = 2
exponent (2) = 2
exponent(3) = 2
Print "Die Bits fangen bei 0 an zu zählen. Das ganz rechte Bit von Bin$ ist Bit 0"
For i = Lbound(testVar) To Ubound(testVar)
mask = 2 ^ exponent(i)
If (testVar(i) And mask) Then
Print "Bit " &Cstr(exponent(i)) & " ist in " & Cstr(testVar(i)) & " gesetzt. (Bin$=" & Bin$(testVar(i))
Else
Print "Bit " & Cstr(exponent(i)) & " ist in " & Cstr(testVar(i)) & " NICHT gesetzt. (Bin$=" & Bin$(testVar(i))
End If
Next
Print "Das 2. rechteste Bit von Bin$ ist Bit 1"
Print "Das 3. rechteste Bit von Bin$ ist Bit 2"
Print " :-) "
End Sub
Könnte ich direkt für den offenen Userberechtigungen mit LotusScript Fall anwenden. Mach ich aber später.
Gruß Axel