lbone a écrit a écrit :
Bonjour existe t'il une fonction qui permet de convertir un nombre decimal en binaire.
Car j'y arrive pour l'octal et l'hexa mais pas le binaire :-(
Merci de m'aider.
|
#define iDivisor 16 /****** ou 2 pour binaire *****/
#define sHEXResultat "0123456789ABCDEF" /*** conversion jusqu' a 16 = hexa ***/
char sLineDOKIDConv[50] = "";
char sLineDOKID00[50] = "";
char c;
int iRest;
int iToDiv;
int iCount;
int i, j;
main (int argc, char *argv[])
{
strcpy(sLineDOKID00, argv[1]);
/* convert string->int */
iToDiv=0;
for (iCount=0; sLineDOKID00[iCount] >= '0' && sLineDOKID00[iCount] <= '9'; iCount++)
iToDiv= 10 * iToDiv + (sLineDOKID00[iCount] - '0');
/* convert in other base */
iCount=0;
do {
iRest=iToDiv % iDivisor;
iToDiv=(iToDiv - iRest) / iDivisor;
sLineDOKIDConv[iCount]=sHEXResultat[iRest];
iCount=iCount++;
printf("%s\n", sLineDOKIDConv);
} while (iToDiv > 0);
/* turn the result to the correct order */
for (i=0, j=strlen(sLineDOKIDConv)-1; i < j; i++, j--) {
c=sLineDOKIDConv[i];
sLineDOKIDConv[i]=sLineDOKIDConv[j];
sLineDOKIDConv[j]=c;
}
printf("%s\n", sLineDOKIDConv);
}