可能重复:
是否有printf转换器以二进制格式打印?
这是我的计划
#include<stdio.h>
int main ()
{
int i,a=2;
i=~a;
printf("a=%d\ni=%d\n",a,i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是
a=2
i=-3
Run Code Online (Sandbox Code Playgroud)
我希望这个以二进制打印.%x,%o和%d是十六进制,八进制和十进制数,但是什么用于在printf中打印二进制文件?
Vin*_*ura 50
printf()不直接支持它.相反,你必须自己动手.
就像是:
while (n) {
if (n & 1)
printf("1");
else
printf("0");
n >>= 1;
}
printf("\n");
Run Code Online (Sandbox Code Playgroud)
zw3*_*324 42
虽然ANSI C没有这种机制,但可以使用itoa()作为快捷方式:
char buffer [33];
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
Run Code Online (Sandbox Code Playgroud)
这是起源:
它是非标准的C,但K&R提到了C书中的实现,所以它应该是很常见的.它应该在stdlib.h中.