VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Advanced Base Converter

by Jon Feucht (13 Submissions)
Category: Math/Dates
Compatability: Visual Basic 3.0
Difficulty: Advanced
Date Added: Wed 3rd February 2021
Rating: (6 Votes)

Updated code! This function converts numbers into any base, and any base into decimal! Works frek-in' awesome!

Assumes
Not all bases will work; there are not enough characters to be able to do every base. An error will occur when this happens.
Code Returns
' The two functions given are reversible. For example: ConvertToBase(45, 16) = "2D" ConvertFromBase("2D", 16) = 45
Side Effects
Will not (yet) deal with negative numbers, and rounds all numbers that are decimal.

Rate Advanced Base Converter

Function ConvertToBase(DecNumber As Double, NewBase As Integer) As String
Dim ModBase As Double
 Do
 ModBase = CDbl(DecNumber - (Int(DecNumber / NewBase)) * NewBase)
 DecNumber = Int(DecNumber / NewBase)
 If ModBase > 9 Then ModBase = ModBase + 7
 ConvertToBase = Chr(ModBase + 48) & ConvertToBase
 Loop Until DecNumber = 0
End Function
Function ConvertFromBase(BaseNumber As String, OldBase As Integer) As Double
Dim i As Integer, LetterVal As Integer
 On Error Resume Next
 For i = 1 To Len(BaseNumber)
 LetterVal = Asc(Mid(BaseNumber, Len(BaseNumber) - i + 1, 1)) - 48
 If LetterVal > 9 Then LetterVal = LetterVal - 7
 If LetterVal > OldBase Then GoTo InvalidNumber
 ConvertFromBase = ConvertFromBase + (OldBase ^ (i - 1)) * LetterVal
 Next i
InvalidNumber:
End Function

Download this snippet    Add to My Saved Code

Advanced Base Converter Comments

No comments have been posted about Advanced Base Converter. Why not be the first to post a comment about Advanced Base Converter.

Post your comment

Subject:
Message:
0/1000 characters