C中二进制的格式说明符是什么?

What is the format specifier for binary in C?

我找遍了所有地方,但没有找到问题的答案。首先,我知道十进制的符号是%d,八进制的符号是%o,十六进制的符号是%x。然而,我找不到的是二进制符号。如果有任何帮助,我将不胜感激。

没有一个。如果想输出二进制,直接写代码即可。

您找不到用于以二进制形式打印整数的格式说明符的原因是没有。您必须编写自己的函数来以二进制形式打印数字。

因此对于单个无符号字节:

#include <stdio.h>
#include <limits.h>

void print_bin(unsigned char byte)
{
    int i = CHAR_BIT; /* however many bits are in a byte on your platform */
    while(i--) {
        putchar('0' + ((byte >> i) & 1)); /* loop through and print the bits */
    }
}

对于标准的无符号整数:

#include <stdio.h>
#include <limits.h>

void print_bin(unsigned int integer)
{
    int i = CHAR_BIT * sizeof integer; /* however many bits are in an integer */
    while(i--) {
        putchar('0' + ((integer >> i) & 1)); 
    }
}

相应地调整较大整数的函数。但是要小心有符号的移位,因为行为是未定义的并且完全依赖于编译器。

没有直接的方法。一种方法是,您可以查找 table 将一个字节转换为 1 和 0 的 const char *。然后你可以遍历字节并打印出查找中的内容 table.