Calcula el valor de un número al pasar de base X (cualquiera) a base 10
Sub Nro2DiezR(ByVal Numero As String, Base As Integer, ByRef Resultado As Long) ' Esta rútina es de uso y distribución gratuita, si tienes alguna duda o mejora ' puedes escribirme a spidersoft@beer.com ' Cálcula el valor de un número al pasar de base X (cualquiera) a base 10 ' Resultado debe inicializarse a cero antes de llamar a la rutina. 'Parametros: ' Numero; es el número a convertir. ' Base; es la base que tiene el número ' Resultado; un long donde se almacenará el resultado final. 'Ejemplo de llamada: ' call Nro2Diez ("101",2,Res) 'Pasar 101 (binario) a decimal = 5 ' call Nro2Diez ("2d3f",16,Res) 'Pasar 2D3F (Hexadecimal) a decimal = 11583 ' Dim NumeroAux As Integer If Base > 10 And Asc(UCase(Left(Numero, 1))) > Asc("9") Then NumeroAux = (Asc(UCase(Numero)) - Asc("9")) + 2 Else NumeroAux = CInt(Left(Numero, 1)) End If Resultado = Resultado + NumeroAux * (Base ^ ((Len(Numero)) - 1)) If Len(Numero) > 1 Then Call Nro2DiezR(Right(Numero, Len(Numero) - 1), Base, Resultado) End If End Sub