可能重复:
Is there a printf converter to print in binary format?
这是我的程序
#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
我想要以二进制打印。 %x,%o和%d是十六进制,八进制和十进制数,但是什么用于在printf中打印二进制文件?
答案 0 :(得分:49)
printf()不直接支持。相反,你必须自己动手。
类似的东西:
while (n) {
if (n & 1)
printf("1");
else
printf("0");
n >>= 1;
}
printf("\n");
答案 1 :(得分:40)
虽然ANSI C没有这种机制,但可以使用itoa()作为快捷方式:
char buffer [33];
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
这是起源:
它是非标准的C,但K&amp; R提到了C书中的实现,所以它应该是很常见的。它应该在stdlib.h中。