Calcula el valor de un número al pasar de base 10 a cualquier otra.
Sub Diez2NroR(ByVal Numero As Long, Base As Integer, ByRef Resultado As String)
' 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 10 a cualquier otra
' He usado tipos de datos long por si se introducen parámetros grandes, pero
' normalmente bastaría con usar de tipo integer. Resultado debe inicializarse
' con "" antes de llamar a la rútina.
'Parametros:
' Numero; es el número en base 10 a convertir.
' Base; es la nueva base que tendrá el número
' Resultado; un string donde se almacenará el resultado final.
'Ejemplo de llamada:
' call Diez2Nro (35,2,Res) 'Pasar 35 a binario (100011)
' call Diez2Nro (145,16,Res) ' Pasa 145 a hexadecimal (91)
Dim Resto As Long, Cociente As Long
Cociente = Numero Base ' División entera
Resto = Numero Mod Base
If Cociente >= Base Then
Call Diez2NroR(Cociente, Base, Resultado)
If Resto < 10 Then
Resultado = Resultado & Resto
Else
Resultado = Resultado & Chr((Asc("A") - 10) + Resto)
End If
Else
If Cociente < 10 Then
Resultado = Resultado & Cociente
Else
Resultado = Resultado & Chr((Asc("A") - 10) + Cociente)
End If
If Resto < 10 Then
Resultado = Resultado & Resto
Else
Resultado = Resultado & Chr((Asc("A") - 10) + Resto)
End If
End If
End Sub
Posted
dom, sep 5 1999 20:17
by
Maverick