How to convert a number to any base in VB.NET

1 Answer

0 votes
Imports System
Imports System.Text

Module BaseConvert

    Function ToBase(n As Integer, baseValue As Integer) As String
        Const digits As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

        If baseValue < 2 OrElse baseValue > 36 Then
            Throw New ArgumentException("Base must be between 2 and 36")
        End If

        If n = 0 Then
            Return "0"
        End If

        Dim sb As New StringBuilder()

        While n > 0
            Dim remainder As Integer = n Mod baseValue
            sb.Append(digits(remainder))
            n \= baseValue
        End While

        ' Reverse the string
        Dim chars() As Char = sb.ToString().ToCharArray()
        Array.Reverse(chars)
        Return New String(chars)
    End Function

    Sub Main()
        Dim number As Integer = 255

        Console.WriteLine($"{number} in base 2  = {ToBase(number, 2)}")
        Console.WriteLine($"{number} in base 8  = {ToBase(number, 8)}")
        Console.WriteLine($"{number} in base 16 = {ToBase(number, 16)}")
        Console.WriteLine($"{number} in base 36 = {ToBase(number, 36)}")
    End Sub

End Module



' run:
'
' 255 in base 2  = 11111111
' 255 in base 8  = 377
' 255 in base 16 = FF
' 255 in base 36 = 73
'

 



answered Feb 21 by avibootz
...