Hola miren este problema:
Convertir un número entero de base 2 a base 4 por el método directo.
El método directo consiste en por ejemplo
Entrada: 1101001100
Separa el dígito de a dos, en este caso por ser la base de llegada igual a 4. En consecuencia:
11-01-00-11-00
Por conversión quedaría:
31030
Espero que eso no haya causado problemas.
Ahora este es el siguiente algoritmo que me gustaría que chekaran aver si existe una forma más fácil y como poder optimizarlo.
algoritmo Convierte;
variables
dig_4,n_2,acu_n4,cnt_0,i son enteros;
cnt_0_f es logico;
inicio
leer n_2;
acu_n4=0;
cnt_0_f=verdadero;
si n_2==0 entonces
escribir "0";
mientras n_2<>0 hacer
inicio
dig_4=n_2%100;
en caso dig_4 sea
1:
inicio
dig_4=1;
cnt_0_f=falso;
final;
10:
inicio
dig_4=2;
cnt_0_f=falso;
final;
11:
inicio
dig_4=3;
cnt_0_f=falso;
final;
0:
inicio
si cnt_0_f==verdadero entonces
cnt_0=cnt_0+1;
dig_4=0;
final;
final;
acu_n4=(acu_n4*10)+dig_4;
n_2=n_2\100;
final;
mientras acu_n4<>0 hacer
inicio
dig_4=acu_n4%10;
escribir dig_4;
acu_n4=acu_n4\10;
final;
si cnt_0<>0 entonces
para i=1 hasta cnt_0 hacer
inicio
escribir "0";
final;
final