Comment imprimer un nombre binary via printf

Dupliquer possible:
Existe-t-il un convertisseur printf pour imprimer au format binary?

Voici mon programme

#include int main () { int i,a=2; i=~a; printf("a=%d\ni=%d\n",a,i); return 0; } 

La sortie est

 a=2 i=-3 

Je veux que cela soit imprimé en binary. Il y a% x,% o et% d qui correspondent aux nombres hexadécimal, octal et décimal, mais que signifie-t-il pour imprimer du binary dans printf?

    printf () ne supporte pas directement cela. Au lieu de cela, vous devez créer votre propre fonction.

    Quelque chose comme:

     while (n) { if (n & 1) printf("1"); else printf("0"); n >>= 1; } printf("\n"); 

    Bien que ANSI C ne dispose pas de ce mécanisme, il est possible d’utiliser itoa () comme raccourci:

      char buffer [33]; itoa (i,buffer,2); printf ("binary: %s\n",buffer); 

    Voici l’origine:

    itoa dans la référence cplusplus

    C’est un C non standard, mais K & R a mentionné la mise en œuvre dans le livre C, donc cela devrait être assez courant. Il devrait être dans stdlib.h.