excel vba integer is bit set 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)		'<--displays: 00000000
MsgBox ByteToBits(170)		'<--displays: 10101010
MsgBox ByteToBits(255)		'<--displays: 11111111

Example 2: 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)			'<--displays: 00000000000000000000000000000000
MsgBox LongToBits(293781237)	'<--displays: 00010001100000101011111011110101
MsgBox ByteToBits(-1)			'<--displays: 11111111111111111111111111111111

Example 3: vba bits to byte

'Extremely fast VBA function to convert a binary string to a Byte:

Function BitsToByte(bits$) As Byte
    Dim i&
    Static b() As Byte
    If LenB(bits) > 16 Then Exit Function
    If LenB(bits) = 16 Then
        b = bits
    Else
        b = String$(8 - Len(bits), "0") & bits
    End If
    For i = 0 To 14 Step 2
        BitsToByte = 2 * BitsToByte Or (b(i) Xor 48)
    Next
End Function


'Example:

MsgBox BitsToByte("00001100")		'<--displays: 12
MsgBox BitsToByte("10000001")		'<--displays: 129
'
'
'

Tags:

Vb Example