Transformar la cadena BASE64 a la cadena BASE16 (HEX)?

Hey, estoy tratando de escribir un programa para convertir de una cadena BASE64 a una cadena BASE16 (HEX).

Aquí hay un ejemplo:

     BASE64:   Ba7+Kj3N
HEXADECIMAL:   05 ae fe 2a 3d cd
     BINARY:   00000101 10101110 11111110 00101010 00111101 11001101
    DECIMAL:   5 174 254 42 61 205

¿Cuál es la lógica para convertir de BASE64 a HEXIDECIMAL?
¿Por qué se divide la representación decimal?
¿Cómo es que la representación binaria se divide en 6 secciones?

Solo quiero las matemáticas, el código que puedo manejar solo en este proceso me confunde. Gracias :

Respuestas a la pregunta(2)

Su respuesta a la pregunta