Imports System
Imports System.Runtime.InteropServices
Public Class Program
Public Shared Function GetLowestOrderSetBit(ByVal number As Integer) As Integer
Dim INT_SIZE As Integer = Marshal.SizeOf(GetType(Integer))
Dim lowestOrderBitIndex As Integer = -1
For i As Integer = 0 To INT_SIZE - 1
If ((number >> i) And 1) = 1 Then
lowestOrderBitIndex = i
Exit For
End If
Next
Return lowestOrderBitIndex
End Function
Public Shared Sub Main(ByVal args() As String)
Dim number As Integer = 1688 ' 11010011000
Dim lowestOrderBitIndex As Integer = GetLowestOrderSetBit(number)
Console.WriteLine(lowestOrderBitIndex)
End Sub
End Class
' run:
'
' 3
'