vba are bits set in integer code example
Example 1: excel vba binary from byte value
Public Function ByteToBits$(ByVal n&)
ByteToBits = "00000000"
If n And 1 Then MidB$(ByteToBits, 15) = "1"
If n And 2 Then MidB$(ByteToBits, 13) = "1"
If n And 4 Then MidB$(ByteToBits, 11) = "1"
If n And 8 Then MidB$(ByteToBits, 9) = "1"
If n And 16 Then MidB$(ByteToBits, 7) = "1"
If n And 32 Then MidB$(ByteToBits, 5) = "1"
If n And 64 Then MidB$(ByteToBits, 3) = "1"
If n And 128 Then MidB$(ByteToBits, 1) = "1"
End Function
MsgBox ByteToBits(0)
MsgBox ByteToBits(170)
MsgBox ByteToBits(255)
Example 2: excel vba are bits set in byte
Function ByteBitsAreSet(theByte As Byte, ParamArray bits()) As Boolean
Static i&, b() As Byte
If UBound(bits) = -1 Then Exit Function
If (Not Not b) = 0 Then
ReDim b(0 To 7)
For i = 0 To 7
b(i) = 2 ^ i
Next
End If
For i = 0 To UBound(bits)
If bits(i) < 0 Then Exit Function
If bits(i) > 7 Then Exit Function
If (theByte And b(Int(bits(i)))) = 0 Then Exit Function
Next
ByteBitsAreSet = True
End Function
MsgBox ByteBitsAreSet(255, 7)
MsgBox ByteBitsAreSet(230, 0)
MsgBox ByteBitsAreSet(85, 0, 2, 6, 4)
MsgBox ByteBitsAreSet(85, 0, 2, 5, 4)
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)