Cambiar de Base 10 a Base X

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
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s