Código
int binario(int num);
int invertir(int num);
int main()
{
int num,complemento,res;
printf("Bits en la RAM\n\n");
printf("Dame un valor entero: ");
scanf("%d",&num);
if(num>0)
binario(num);
else if(num<0)
{
complemento=binario(num);
res=complemento_a_dos(complemento);
}
return 0;
}
int binario(int num)
{
if(num>1)
{
binario(num/2);
num%=2;
printf("%d",num);
}
else
{
printf("%d",num);
return num;
}
return 0;
}
int complemento_a_dos(int complemento)
{
int res;
while((complemento%=10)!=1){
complemento/=10;
}
res=~(complemento%=10);
return res;
}
tengo un problema con este codigo, hasta la funcion que convierte decimal en binario esta bien, pero despues cuando ingrese un numero negativo me tiene que dar el complemento a dos, y ahí fue donde me perdi completamente. Estaba pensando que tal vez con divisiones sucesivas hasta que me aparezca un 1 de derecha a izquierda y despues los digitos que le siguen cambiar los 0 por unos y viceversa