' convert from any base to decimal' BASE can be in the range 2-36Function Any2Dec(ByVal otherBaseNumber As String, ByVal base As Integer) As Long Dim digits As String Dim digitValue As Long ' check base If base < 2 Or base > 36 Then Throw New ArgumentException("Base must be in range 2-36") End If ' get the list of valid digits digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".Substring(0, base) ' convert to decimal Dim ch As Char For Each ch In otherBaseNumber.ToUpper() ' get the digit's value digitValue = digits.IndexOf(ch) ' error if invalid digit If digitValue < 0 Then Throw New ArgumentException("Invalid character") End If ' add to running result Any2Dec = Any2Dec * base + digitValue NextEnd Function