将二进制数据转换为 C 程序的十六进制字符串

Luc*_*ky5 2 c language-agnostic binary hex

我有一个小的二进制图像,需要在 C 程序中表示。表示将如下所示:

static const char[] = {0x1, 0x2, 0x3, 0x4...};
Run Code Online (Sandbox Code Playgroud)

(因此,字节将表示为一系列字符)

如何将二进制文件转换为一个不错的 0x..,0x.. 字符串?有没有程序可以做到这一点?

rus*_*tyx 7

使用xxd实用程序:

$ xxd -i binary.bin > binary.c
Run Code Online (Sandbox Code Playgroud)

binary.c使用以下内容创建:

unsigned char binary_bin[] = {
  0x01, 0x02, 0x03, 0x04,   . . .
  . . .
};
unsigned int binary_bin_len = 123456;
Run Code Online (Sandbox Code Playgroud)