数値をn進数に変換する

36進数に変換する場合は第2引数に36を指定する。

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox2.Text = RadixConvert(CULng(TextBox1.Text), 36)
    End Sub

    ''' <summary>
    ''' n進数の数値文字列に変換
    ''' </summary>
    ''' <param name="l">数値</param>
    ''' <param name="radix">基数</param>
    ''' <returns>数値文字列</returns>
    ''' <remarks>マイナス値は考慮しない</remarks>
    Private Function RadixConvert(ByVal l As ULong, radix As Int32) As String
        Dim remainder As Int32 = 0
        Dim work As Decimal = 0
        Dim result As New StringBuilder

        work = CDec(l)

        While work > 0
            remainder = CInt(work Mod radix)
            result.Insert(0, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".Substring(remainder, 1))
            work = Math.Floor(work / radix)
        End While

        Return result.ToString
    End Function

End Class