excelvba check integer bit code example
Example 1: excel vba long to bits
Function LongToBits$(ByVal n&)
Dim i&
LongToBits = "00000000000000000000000000000000"
If n And &H80000000 Then
Mid$(LongToBits, 1, 1) = "1"
n = n And Not &H80000000
End If
For i = 32 To 2 Step -1
If n And 1 Then Mid$(LongToBits, i, 1) = "1"
n = n \ 2
Next
End Function
MsgBox ByteToBits(0)
MsgBox LongToBits(293781237)
MsgBox ByteToBits(-1)
Example 2: excel vba check if bit is set in integer
Function IntegerBitIsSet(theInteger%, bit As Byte) As Boolean
Static i&, b%()
If (Not Not b) = 0 Then
ReDim b(0 To 14)
For i = 0 To 14
b(i) = 2 ^ i
Next
End If
If bit < 15 Then IntegerBitIsSet = theInteger And b(bit)
End Function
MsgBox IntegerBitIsSet(255, 7)
MsgBox IntegerBitIsSet(230, 0)
MsgBox IntegerBitIsSet(16384, 14)
MsgBox IntegerBitIsSet(-16383, 0)
Example 3: excel vba set bit in byte
Function ByteBitIsSet(theByte As Byte, bit As Byte) As Boolean
Static i&, b() As Byte
If (Not Not b) = 0 Then
ReDim b(0 To 7)
For i = 0 To 7
b(i) = 2 ^ i
Next
End If
If bit < 8 Then ByteBitIsSet = theByte And b(bit)
End Function
MsgBox ByteBitIsSet(255, 7)
MsgBox ByteBitIsSet(230, 0)