Título: Re:rutina de conversion de base10 a base4
Publicado por: KILLERJC en 07 de Abril de 2017, 00:05:54
Siempre suponiendo que num sea un numero de 8 bits no veo NINGUN problema.
Ahora no se que sera mas rapido (si el compilador se da cuenta que el modulo es producto de 2 y si la division tambien), todo depende del compilador como desea hacerlo pero podes hacerlo tambien asi:
Al menos asi no se va a pasar si es que el int es de 16 bits, depende del compilador que sea de 8 o 16. La otra es usar un array, en ves de 4 argumentos, es mas rapido para pasar, ya que pasas solo un puntero y no 4.
Código: C
void convertir_decimal_base4(int num,int*n){
int i;
for(i =0; i<4; i++)
{
n[i]=num&0x3;
num>>=2;
}
}
o
Código: C
void convertir_decimal_base4(int num,int*n){
int i;
for(i =0; i<4; i++)
{
*n=num&0x3;
n++;
num>>=2;
}
}
o
Código: C
void convertir_decimal_base4(int num,int*n){
num &=0xFF;//Proteccion
while(num!=0)
{
*n=num&0x3;
n++;
num>>=2;
}
}
Te lo dejo a tu gusto.
Título: Re:rutina de conversion de base10 a base4
Publicado por: micronet3 en 07 de Abril de 2017, 09:27:13
:shock: :shock: :shock: :shock: ok, me quedo con el segundo ejemplo. que hariamos sin los punteros.
saludos
Título: Re:rutina de conversion de base10 a base4
Publicado por: micronet3 en 07 de Abril de 2017, 09:50:09
killerjc muchas gracias. una consulta, es posible agrupar varios pines de diferentes puertos en un solo vector o estructura?
gracias
Título: Re:rutina de conversion de base10 a base4
Publicado por: micronet3 en 07 de Abril de 2017, 12:21:31
he podido agruparlo de esta manera Void setear_bin_salida(int i,int1 j){ switch(i){ case 0: BIN_SALIDA1=j;break; case 1: BIN_SALIDA2=j;break; case 2: BIN_SALIDA3=j;break; case 3: BIN_SALIDA4=j;break; case 4: BIN_SALIDA5=j;break; case 5: BIN_SALIDA6=j;break; case 6: BIN_SALIDA7=j;break; case 7: BIN_SALIDA8=j;break; case 8: BIN_SALIDA9=j;break; case 9: BIN_SALIDA10=j;break; case 10: BIN_SALIDA11=j;break; `} claro BIN_SALIDA estan renombrados con #bit=puerto.0
Título: Re:rutina de conversion de base10 a base4
Publicado por: KILLERJC en 07 de Abril de 2017, 12:48:47
No creo que exista otra solución mas que la que ya implementaste.
Título: Re:rutina de conversion de base10 a base4
Publicado por: micronet3 en 07 de Abril de 2017, 13:37:46
ya ok, se agradece KILLERJC, ademas con esa funcion me va bien