Título: codigo conversion decimal a binario y complemento a dos Publicado por: m@o_614 en 15 Diciembre 2011, 19:20 pm 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 Título: Re: codigo conversion decimal a binario y complemento a dos Publicado por: El_Java en 16 Diciembre 2011, 18:02 pm Complemento a dos de un numero:
Wikipedia: Otra forma es negar todos los dígitos (se haya el complemento a 1) y después sumar un 1 al resultado, viene a ser lo mismo que lo anteriormente explicado. Código
|