Covert binary data to c char array by xxd command and Python|Linux 下使用xxd命令和Python将二进制文件转换为C字符数组

Linux 下使用xxd 命令将二进制文件转换为C字符数组

1.使用xxd命令将二进制文件或者其他文本文件转换为c语言字符数组

1
2
3
4
5
6
xxd -i data.bin > a.c
#如果没有找到对应的命令,可以使用以下命令进行安装
#ubuntu/debian
sudo apt install xxd
#centOS/Redhat
sudo yum install xxd

2.查看生成结果

1
cat a.c

使用转换后的数组

1.编写测试代码

1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
#include<stdlib.h>
extern unsigned char data_bin[];
int main(int argc, char *argv[])
{
printf("%c\n",data_bin[0]);
printf("%s\n", data_bin);

return 0;
}

2.编译代码

1
gcc -o test a.c main.c

3.运行结果

编写Python 代码将二进制文件转换为字符数组

1.编译Python代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/python
count = 0

with open("binary_array.c","w") as f:
f.write("unsigned char fs_output_bin[]={\n")
with open("data.bin","rb") as f2:
datas = f2.read()
for b in datas:
f.write(" 0x%02X," % int(b))
count+=1
if count%16 == 0:
f.write("\n")
f.write("\n};\n")

PS:以上方法根据自己的情况使用。