Mogelijk duplicaat:
Is er een printf-converter om in binair formaat af te drukken?
Hier is mijn programma
#include<stdio.h>
int main ()
{
int i,a=2;
i=~a;
printf("a=%d\ni=%d\n",a,i);
return 0;
}
De uitvoer is
a=2
i=-3
Ik wil dat dit binair wordt afgedrukt. Er zijn %x, %o en %d die voor hexadecimale, octale en decimale getallen zijn, maar wat is voor het afdrukken van binair in printf?
Antwoord 1, autoriteit 100%
printf() ondersteunt dat niet direct. In plaats daarvan moet je je eigen functie maken.
Zoiets als:
while (n) {
if (n & 1)
printf("1");
else
printf("0");
n >>= 1;
}
printf("\n");
Antwoord 2, autoriteit 89%
Hoewel ANSI C dit mechanisme niet heeft, is het mogelijk om itoa() als snelkoppeling te gebruiken:
char buffer [33];
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
Dit is de oorsprong:
Het is niet-standaard C, maar K&R noemde de implementatie in het C-boek, dus het zou heel gewoon moeten zijn. Het zou in stdlib.h moeten staan.