二进制文件(.bin等文件)转C语言数组形式hex文件(.c等文件)

使用python脚本把二进制文件(.bin等文件)转C语言数组形式hex文件(.c等文件),具体代码如下:

(1)读取.bin文件数据

(2)生成C语言数组定义

(3)打印C数组,或者保存为.c或者.txt等文件

import os# 读取二进制文件并转换为十六进制字符串
def read_hex_from_bin(filename):with open(filename, 'rb') as f:data = f.read()hex_data = ''.join(f'{c:02x}' for c in data)return hex_data# 生成C语言数组定义
def generate_c_array(hex_data, array_name):array_size = len(hex_data) // 2  # 假设每个字节转换成了两个十六进制字符c_array_def = f'const char {array_name}[] = {{'for i in range(0, len(hex_data), 32):  # 每16个字节换行c_array_def += '\n\t' + ', '.join(f"0x{hex_data[i:i+2]}" for i in range(i, min(i+32, len(hex_data)), 2))if i + 32 < len(hex_data):c_array_def += ','c_array_def += '\n'c_array_def += '};'return c_array_defdef write_string_to_txt(string, file_path):file = open(file_path, "w")file.write(string)file.close()# 使用示例
filename = 'test.bin'  # 替换为你的.bin文件名
hex_data = read_hex_from_bin(filename)
array_name = 'data_array'  # 定义数组名称
c_array_code = generate_c_array(hex_data, array_name)# 打印生成的C语言数组代码
#print(c_array_code)bin_file_path = './test.bin'
# 获取文件大小
file_size = os.path.getsize(bin_file_path)
print(f'The size of the file is: {file_size} bytes:')print(len(hex_data));
write_string_to_txt(c_array_code,"./hex_file.c")

运行情况如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳雷龙LSYT201B语音控制模组

文章目录 前言一、芯片简介处理器外设音频蓝牙电源封装温度 二、功能简介管脚描述 三、应用场景四、使用说明五、硬件连接六、FAQ总结 前言 今天拿到的语音控制板是LSYT201B模组&#xff0c;它是深圳市雷龙发展有限公司基于YT2228芯片开发的一款面向智能家居控制的离线语音控制…

第15届蓝桥杯国赛JavaA组个人题解

最后两个概率题不会做, 50分没了 博弈论交了暴力, 30%的分 赛后hack了自己1个填空和一个15分的题 算下来应该是66分, 喜提国一最后一名, rank11 A 田字与直线 题目: 9个点按3*3排成矩阵状, 求恰好经过其中2个点的直线个数 答案 过角的: 4个角, 每个2条 不过角: 4个中点, 4…

员工转正申请精选12个模板供参考

随着社会在不断地进步&#xff0c;我们会经常使用各种各样的申请书&#xff0c;转正申请书就是申请书的一种&#xff0c;那么转正申请书是怎么写的呢&#xff1f;下面是我收集整理的员工转正申请书几个版本&#xff0c;仅供参考&#xff0c;希望能够帮助到大家。别忘了一键三连…

贵的SSL证书跟便宜的SSL证书有什么不一样的?

目前SSL证书市场上从几十块钱的到上万元的都是有的&#xff0c;那么这些着证书之间有什么不同&#xff1f;怎么收费差这么多&#xff1f; 一&#xff1a;从证书的认证安全等级来说 比较便宜的SSL证书一般都是DV验证级别的。也就是说只验证域名的所有权&#xff0c;做一个DNS解…

楼市去金融化, 教育去资本化 ,医疗去市场化

楼市去金融化&#xff0c; 教育去资本化 &#xff0c;医疗去市场化

03.0docker安装

docker简介 docker的主要目标是"Build,Ship and Run any App,Angwhere",构建&#xff0c;运输&#xff0c;处处运行 部署服务&#xff0c;环境问题 一次构建&#xff0c;处处运行 docker是一种软件的打包技术 构建&#xff1a;做一个docker镜像 运输&#xff1a;do…

数据分析常用模型合集(一)AARRR模型和漏斗模型

准备把常用的数据分析模型&#xff0c;像什么AARRR&#xff0c;RFM之类的&#xff0c;逐个全部写一下&#xff1b; 最好能带点案例和代码&#xff0c;搞一个小合集。 最终达到完全不懂的人&#xff0c;看完就能知道得差不多&#xff1b; 数据分析常用模型合集&#xff08;二…

[大师C语言(第十八篇)]C语言typedef背后技术详解

引言 在C语言中&#xff0c;typedef是一个非常有用的关键字&#xff0c;它允许程序员为现有的数据类型定义一个新的名称。这种做法可以提高代码的可读性和可维护性&#xff0c;特别是在处理复杂的数据结构时。本文将深入探讨C语言typedef背后的技术原理&#xff0c;并通过丰富…

大型语言模型简介

大型语言模型简介 大型语言模型 (LLM) 是一种深度学习算法&#xff0c;可以使用非常大的数据集识别、总结、翻译、预测和生成内容。 文章目录 大型语言模型简介什么是大型语言模型&#xff1f;为什么大型语言模型很重要&#xff1f;什么是大型语言模型示例&#xff1f;大型语…

CPython源码学习3:浮点数对象

浮点数的结构体 PyFloatObject 浮点数的结构体PyFloatObject &#xff0c;定义在头文件 Include/floatobject.h 中&#xff0c;可以看出浮点数底层使用 C 的double类型来存储真正的值。 // Include/floatobject.h typedef struct {PyObject_HEADdouble ob_fval; // 底层使用…

[python][whl]python模块pylibtiff的whl文件所有版本下载地址汇总pylibtiff安装

​ 安装pylibtiff 以前都是访问地址如下https://www.lfd.uci.edu/~gohlke/pythonlibs/#pylibtiff 下载whl文件后直接pip即可&#xff0c;但是这个网站2023年末开始已经停止访问无法访问&#xff0c;不过还好我以前备份过pylibtiff文件&#xff0c;下载地址汇总如下&#xff1a…

(一)django目录介绍

1、生成django项目&#xff0c;得到的目录如下 manage.py&#xff1a;命令行工具&#xff0c;内置多种方式与项目进行交互。在命令提示符窗口下&#xff0c;将路径切换到项目并输入python manage.py help,可以查看该工具的指令信息。 默认的数据库工具&#xff0c;sqlite 在…

基于django | 创建数据库,实现增、删、查的功能

1、在cmd中&#xff0c;输入指令进入mysql终端&#xff1a; mysql -u 用户名 -p 2、输入mysql的密码 3、输入指令&#xff0c;显示出所有的数据库 show databases; 4、输入指令创建表&#xff1a; create table 表名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 5、use …

【Python网络爬虫】详解python爬虫中正则表达式、BeautifulSoup和lxml数据解析

&#x1f517; 运行环境&#xff1a;PYTHON &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

【算法】在?复习一下快速排序?

基本概念 快速排序是一种基于交换的排序算法&#xff0c;该算法利用了分治的思想。 整个算法分为若干轮次进行。在当前轮次中&#xff0c;对于选定的数组范围[left, right]&#xff0c;首先选取一个标志元素pivot&#xff0c;将所有小于pivot的元素移至其左侧&#xff0c;大于…

EPIC Fantasy Village - Low Poly 3D Art(梦幻村庄乡村小镇模型)

这个包提供了一个以幻想为主题的多边形风格游戏,适合TopDown、RPG、冒险、社交和RTS。它允许你创建自己的美丽幻想村庄和角色。 EPIC 幻想村庄包 EPIC幻想村庄包提供了一个以幻想为主题的多边形风格游戏,适用于TopDown、RPG、冒险、社交和RTS游戏。这个包允许你创建自己的美丽…

Idefics2-8B多模态大模型微调指南

我们生活在大模型 (LLM) 时代&#xff0c;几乎每周你都会听到一种新的语言模型问世。从谷歌的 Gemini 和 Gemma 模型到 Meta 最新的 Llama 3 和微软的微型 Phi-3 模型&#xff0c;这些行业巨头之间正在进行激烈的在线竞争&#xff0c;以争夺头把交椅。 在这一连串的活动中&…

MySQL全文索引实现简单版搜索引擎

1 前言 只有Innodb和myisam存储引擎能用全文索引(innodb支持全文索引是从mysql5.6开始的)char、varchar、text类型字段能创建全文索引(fulltext index type)全文索引的基于关键词的,如何区分不同的关键词了,就要用到分词(stopword)英文单词用空格,逗号进行分词;中文分…

Java 18新特性深度解析:提升开发效率与性能的革新工具

在Java的世界中&#xff0c;每一次更新都带来新的惊喜和挑战。Java 18作为长期支持版本&#xff0c;不仅延续了Java语言的稳定性和可靠性&#xff0c;还引入了一系列令人兴奋的新特性&#xff0c;旨在进一步提升开发者的生产力和应用程序的性能。本文将深入探讨Java 18中的关键…

css的布局方式

CSS提供了多种布局方式&#xff0c;以满足不同的需求。以下是几种常见的CSS布局方式&#xff1a; 静态布局。网页布局始终按照最初写代码时的布局来显示&#xff0c;不随浏览器尺寸变化而变化。1 自适应布局。屏幕分辨率变化时&#xff0c;页面里元素的大小会变化而布局…