c - 如何通过printf打印二进制数

标签 c binary printf

<分区>

Possible Duplicate:
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打印二进制是什么?

最佳答案

printf() 不直接支持它。相反,您必须创建自己的函数。

类似于:

while (n) {
    if (n & 1)
        printf("1");
    else
        printf("0");

    n >>= 1;
}
printf("\n");

关于c - 如何通过printf打印二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6373093/

相关文章:

c - 为什么编译器在初始化一个volatile数组的时候会生成这样的代码呢?

binary - 将 0 和 1 的二进制字符串转换为 Elixir 中的位串

c - 为什么在 Bash 中使用管道时 printf 不起作用?

c - 将 float 传递给 printf 是未定义的行为吗?

C++ printf 问题 : How can I safely pass a char* to printf?

c - gcc 在 windonws 上下载 ubuntu bash IP 地址获取返回错误

c - 给定大于 256 的整数,如何在 C 中将整数转换为无符号字符?

iPhone 唯一的应用程序被拒绝,因为它是通用二进制文件

python - 通过 Binary Copy 将包含 PostGis 字段的数据批量加载到 PostgreSQL

循环能否在每次运行时创建一个新的、不同的数组?