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

Fra*_*cci 2 c binary symbols

我到处都看了一下,但是没有找到问题的答案。首先,我知道十进制%d的符号是%o,八进制的符号是,十六进制的符号是%x。但是,我找不到二进制的符号。我将不胜感激任何帮助。

PC *_*ite 5

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

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

#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 */
    }
}
Run Code Online (Sandbox Code Playgroud)

对于标准的unsigned int:

#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)); 
    }
}
Run Code Online (Sandbox Code Playgroud)

相应地将函数调整为更大的整数。但是要警惕有符号移位,因为行为是不确定的,并且完全依赖于编译器。