Buenas RedPic,
he estado dándole vueltas y al final era más sencillo de lo que parecía. Pero primero necesitas crear con un programa externo una matriz de 40x13 (número de bits a convertir por número de dígitos de 2^40), de forma que en las filas tengas el número 2^n (n de 0 a 40) separado en unidades, decenas, centenas, ... y en cada columna coincidan todas las unidades, decenas, ... Lo explico mejor con un ejemplo. Si quisieras convertir un número de 8 bits (en vez de 40) la matriz sería esta:
m = {
{0,0,1}, //2^0
{0,0,2}, //2^1
{0,0,4}, //2^2
{0,0,8}, //2^3
{0,1,6}, //2^4
{0,3,2}, //2^5
{0,6,4}, //2^6
{1,2,8} //2^7
}
ahora el resto es sencillo. Para hayar las unidades del 10000111, sumaremos todas las unidades de nuestra matriz, excepto de aquellas que correspondan a un cero y nos quedamos con las unidades del resultado. El exceso se acumula para las decenas...
m = { {0,0,1}, 1
{0,0,2}, 1
{0,0,4}, 1
{0,0,8}, 0
{0,1,6}, 0
{0,3,2}, 0
{0,6,4}, 0
{1,2,8} 1
}
unidades = 1 + 2 + 4 + 8 = 15
decenas = 0 + 0 + 0 + 2 + 1 = 3
centenas = 0 + 0 + 0 + 1 = 1
Y efectívamente, el 10000111 en binario corresponde al 135 en decimal.
Espero te sirva.
saludos!!