Buenas,tengo que hacer un programa en C y parte del programa es que pase un valor decimal a binario.
Me sale bien pero me pone el resultado al reves.
Me explico:
En papel si queremos poner 10(decimal) en binario tenemos que ir diviendo por 2,y cuando llegamos al final escribimos el resto de abajo para arriba y quedario 01010 que es 10 en decimal,a mi me sale al reves,bueno sería los mismos...es un mal ejemplo.
Probad poniendo la letra "H" que en el codico ASSCI es 72,pues quiero pasar 72 a binario
Este es el programa que he escrito:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
char texto[50];
int longtexto;
int i;
int h[255];
int dividendo;
int cociente;
int divisor;
int resto;
int a;
a=0;
printf("Introducir el texto para ser cifrado:\n");
scanf("%s",texto);
longtexto=strlen(texto);
printf("El texto tiene una longitud de %d\n",longtexto);
divisor=2;
resto=0;
printf("El texto en código ASCII es\n");
for(i=0;i<longtexto;i++){
h[i]=texto[i];
printf("\n%d %c ",h[i],texto[i]);
dividendo=h[i];
while(a<8){ /*el "a" sirve como contador*/
cociente=dividendo/divisor;
resto=dividendo%2;
dividendo=cociente;
printf("%d\t",resto);
a++; /*Con esto voy rellenando los ceros hasta tener los 8 bits*/
}
}
system("pause");
return 0;
}
Un saludo,gracias