基数変換
今回は、基数変換です。10進数をn進数に変換します(16進数まで)。
普通にループで処理すればいいんですけど、あえて再帰で。
'基数変換(10進数をn進数に変換する) Private Sub RadixConversionTest() Debug.Print RadixConversion(777, 16) End Sub Private Function RadixConversion(ByVal num As Long, ByVal Radix As Long) As String Dim Quotient As Long Dim Remainder As Long Remainder = num Mod Radix Quotient = num \ Radix If Quotient = 0 Then RadixConversion = GetHexString(Remainder) Else RadixConversion = RadixConversion(Quotient, Radix) & GetHexString(Remainder) End If End Function Private Function GetHexString(ByVal num As Long) As String Dim temp As Variant temp = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F") GetHexString = temp(num) End Function
ループ処理バージョンは、今度アップします(まだ書いてない)