The basic principal of this function is to divide the decimal number by two for bit number of times (if that makes sense). So, if bit 30 was to be checked the number would be divided by two 30 times. This is the basic principal in “shifting bits right.” To shift bits left, simply multiply by two. The result’s mod 2 will determine whether or not the bit is set.
Public Sub Foo() Dim iVal as integer iVal = &HA0 '10100000 iVal = RShift16(iVal, 4) Debug.Print iVal 'Now it's 00001010End Sub Function LShift16(w As Integer, c As Integer) As Integer 'Bitwise left shift for short integers. LShift16 = w * (2 ^ c)End Function Function RShift16(w As Integer, c As Integer) As Integer 'Bitwise right shift for short integers. RShift16 = w (2 ^ c)End Function