文本文件和二进制文件

本文讨论了文本文件和二进制文件的基本概念,涉及字节存储、使用fwrite和fread进行二进制读写,以及如何在MATLAB中处理二进制文件。还提到了大端模式和小端模式的区别以及程序验证的重要性。
摘要由CSDN通过智能技术生成

项目来源

原来记录文件,频率过高会导致数据丢失
因为用sprintf函数会有一个转换的时间,sprintf( buffer, "%d ", pRcvAPData2->Frame_Type );所以就考虑记录二进制文件,提高记录效率。
fdr记录60hz数据
记录后的二进制文件放在MATLAB解码
本文章供自己以后查找学习

参考文章

大端模式和小端模式的区别
https://download.csdn.net/download/weixin_44057803/89001829
参考视频
文本文件和二进制文件

1.什么是文本文件

如果要求在外存(磁盘)上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。
往文件中写入10000这个数,其文本文件格式如下:在这里插入图片描述

2.什么是二进制文件

数据在内存中以二进制的形式存储,如果不加转换的输出到外存(磁盘),就是二进制文件!

在这里插入图片描述
二进制文件是按二进制的编码方式来存放文件的。 例如, 数10000的存储形式为:0010 0111 0001
0000只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。具体这个是什么,是根据文本编码显示的符号,其本身还是二进制,不需要深究!
无论是文本文件还是二进制文件,其本质都是二进制存储。

3.文本文件和二进制文件的字节存储

文本文件的字节存储
假定:还是将10000这个数以ASCII码的形式存储在文件中在这里插入图片描述

数10000的二进制形式为:0010 0111 0001
0000只占二个字节,则在储存前我们需要将其转换为ASCII码的形式,即‘1’,‘0’,‘0’,‘0’,‘0’一个ASCII码字符的大小是1byte,所以数字10000的文本文件所占的字节大小为5byte。

在这里插入图片描述

二进制文件的字节存储

数据在内存中以二进制的形式存储,不加转换的输出到外存(磁盘)!
在这里插入图片描述
二进制文件是按二进制的编码方式来存放文件的。 例如, 数10000的存储形式为:0010 0111 0001 0000
二进制只占二个字节。按照上边说的文本方式,存储ascAll,占用5个字节

4.二进制读写函数

fwrite(将内存中的数据写入文件中)
函数简介:
在这里插入图片描述

#include<stdio.h>

int main()
{
	FILE* pf = fopen("test.txt", "w");
	int a = 10000;
	if (pf != NULL)
	{
		//操作
		fwrite(&a, sizeof a, 1, pf);
		//关闭
		fclose(pf);
	}
	pf = NULL;
	return 0;
}

在这里插入图片描述在这里插入图片描述

#include<stdio.h>

int main()
{
	FILE* pf = fopen("test.txt", "rb+");
	int a = 10000;
	int b = 0;
	if (pf != NULL)
	{
		//操作
		fwrite(&a, sizeof a, 1, pf);
	}
	rewind(pf);//回到文本的起始位置
	{
		//操作
		fread(&b, sizeof a, 1, pf);
		printf("%d\n", b);
		//关闭
		fclose(pf);
	}
	pf = NULL;
	return 0;
}

在这里插入图片描述

或者你可以用文件系统的f_write和f_read函数,我在IAR工程里面做的用的就是这个,前提是你已经移植了文件系统

5.翻译二进制文件

在这里插入图片描述

像这样,二进制文件虽然也可在屏幕上显示,但其内容无法读懂。具体这个是什么,我要怎样才能弄懂呢!别急!接下来教你操作

用下边这个软件解析
下载地址:https://download.csdn.net/download/weixin_44057803/89001829
在这里插入图片描述

6.程序验证

验证流程:
写入一定数据保存至二进制文件
在函数初始化时,在将这个文件解出来进行验证
防止记录不对,在MATLAB解码有问题,浪费时间

注意使用结构体时候,取消结构体优化,否则因为内存对齐问题,对解数据造成影响
在这里插入图片描述
IAR采用小端模式

大端模式和小端模式的区别
在这里插入图片描述

  • 19
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不熬夜,早点睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值