可能性のある複製:
バイナリ形式で印刷するprintfコンバーターはありますか?
これが私のプログラムです
#include<stdio.h>
int main ()
{
int i,a=2;
i=~a;
printf("a=%d\ni=%d\n",a,i);
return 0;
}
出力は
a=2
i=-3
これをバイナリで印刷したい。 16進数、8進数、10進数の%x、%o、%dがありますが、printfでバイナリを印刷するのは何ですか?
printf()はそれを直接サポートしていません。代わりに、独自の関数を作成する必要があります。
何かのようなもの:
while (n) {
if (n & 1)
printf("1");
else
printf("0");
n >>= 1;
}
printf("\n");
ANSI Cにはこのメカニズムがありませんが、ショートカットとしてitoa()を使用することができます。
char buffer [33];
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
ここに起源があります:
これは非標準のCですが、K&RはCブックで実装について言及しているため、非常に一般的です。 stdlib.hにあるはずです。