para pasar de hexadecimal a decimal debes tener en cuenta unas cosas básicas:
* Cada valor HEX se traduce en 4 bits binarios, esto es por ejemplo, A1 = 1010 0001, y si traduces el valor binario a decimal: 1010 0001 = 161,
Entonces debes tener en cuenta los siguientes tips:
1) Primero creas un arreglo de caracteres, ahi pediras el valor HEX, con un arreglo de 10 posiciones bastara. Hay gente que traduce ese arreglo de caracteres a uno de int o float, pero para este caso no es necesario pues no se realizan operaciones logico-aritmeticas.
2) traduces ese valor HEX a binario, entonces por cada cifra HEX en el arreglo de caracteres deberas tener 4 posiciones que almacenes los números binarios que tengan el valor HEX convertido a binario, entonces, crea un arreglo de unas 50 posiciones para almacenar el valor binario.
3) creas un switch que almacene los casos en los que se interprete cada valor hexadecimal y se almacene en el arreglo binario cada valor.
4) teniendo ese arreglo binario, dependiendo de ese número de posiciones procedes a interpretar esos valores a una variable contador que inicializas en cero ("0") y le vas sumando cada valor binario en el que haya un 1 en el arreglo binario.
5) es importante recordar que dependiendo de la posicion debe sumarse de acuerdo a la potencia de dos mientras hace el recorrido (2^n recorriendo el arreglo binario), y se lo vas sumando a la variable contadora.
Aqui te dejo una tabla de conversion de este tipo de problemas.
http://es.ncalculators.com/digital-computation/binary-hex-converter.htmOjala sirva de algo, no nos pidas que te hagamos el código, busca en google o pagale a alguien que esto es practicamente trabajo.