Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void fromDecToBin(char *dec, char* bin, int nbits)
- {
- /* CONVERSION TABLEAU AVEC UN NB DECIMAL A UN NB BINAIRE */
- int p = strlen(dec);
- int deci = 0;
- int i,j;
- char bintemp[17];
- if(dec[0] == '-')
- {
- printf("Valeur decimale negative detectee...");
- i=1;
- }
- else
- {
- i=0;
- }
- for(i; i <p; i++)
- {
- deci += puiss(10,p-i-1)*(dec[i]-48);
- }
- if(dec[0] == '-')
- printf("Valeur decimale non signee à convertir : -%d ...",deci);
- else
- printf("Valeur decimale non signee à convertir : %d ...",deci);
- /*On obtient la valeur decimale en int */
- i = 0;
- /*On obtient le tableau de binaire, a l'envers via les divisions euclidiennes succesives*/
- while(deci != 0)
- {
- bintemp[i] = deci%2+48;
- deci = deci/2;
- i++;
- }
- /*Selon le nb de bits voulus, on rajoute des zéros*/
- while(i < nbits)
- {
- bintemp[i] = '0';
- i++;
- }
- /* Rajout du complement a 2 si besoin */
- if(dec[0] == '-')
- bintemp[i-1] = '1';
- j = 0;
- /*On le remet a l'endroit */
- while(j<i)
- {
- bin[j] = bintemp[i-1-j];
- j++;
- }
- bin[j] = '\0';
- bintemp[0] = '\0';
- printf(" Sur %d bits = %s\n\n",strlen(bin),bin);
- }
Advertisement
Add Comment
Please, Sign In to add comment