README.md

December 4, 2022 ยท View on GitHub

Advanced Base Converter

Description

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

More Info

Not all bases will work; there are not enough characters to be able to do every base. An error will occur when this happens.

' The two functions given are reversible. For example:

ConvertToBase(45, 16) = "2D"

ConvertFromBase("2D", 16) = 45

Will not (yet) deal with negative numbers, and rounds all numbers that are decimal.

Submitted On
ByJon Feucht
LevelAdvanced
User Rating4.3 (26 globes from 6 users)
CompatibilityVB 5.0, VB 6.0
CategoryMath/ Dates
WorldVisual Basic
Archive File

Source Code

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