基数変換(ループバージョン)
基数変換のループバージョンです。
以前紹介した再帰バージョンはコチラ。
hex309.hatenablog.com
今回も16進数までの対応です。16進数の文字列への変換を行うGetHexStringプロシージャは、再帰バージョンと同じです。
まぁ、こっちのほうがシンプルですよね。
'基数変換(10進数をn進数に変換する)ループバージョン Private Sub RadixConversionLoopTest() Debug.Print RadixConversionLoop(777, 16) End Sub Private Function RadixConversionLoop(ByVal num As Long, ByVal Radix As Long) As String Dim Quotient As Long Dim Remainder As Long Dim Answer As String Quotient = num Do Remainder = Quotient Mod Radix Quotient = Quotient \ Radix Answer = GetHexString(Remainder) & Answer Loop Until Quotient = 0 RadixConversionLoop = Answer 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