Bueno hace tiempo hice algo asi de conversion de base 10 a 2 - 16, si te sirve de algo aqui esta:
Anuque solo con numeros enteros hehe, ya con decimales se me paso hacerlo ;$ xD
#include <iostream>
using namespace std;
int DecimalToBase(long int iDec, int numbase);
char cHexa[] = {'A','B','C','D','E','F'};
char result[100];
int main(int argc, char *argv[])
{
int num, base;
cout << "Escribe el numero de base 10: "; cin >> num;
cout << "Escribe a la base que se desea convertir: "; cin >> base;
cout << endl << "Numero: ";
for(int x = 0; x < DecimalToBase(14, 2); x++) cout << result[x];
cout << endl;
system("PAUSE");
return 0;
}
int DecimalToBase(long int iDec, int numbase)
{
char base_digits[16] =
{'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
int converted_number[64];
int next_digit, index=0, i=0;
while (iDec != 0)
{
converted_number[index] = iDec % numbase;
iDec /= numbase;
++index;
}
--index;
for( ; index>=0; index--)
{
result[i] = (base_digits[converted_number[index]]);
i++;
}
return i;
}