C数据搜索函数 仿照E的 寻找字节集

本文介绍了一个用于在字节集中查找特定字节序列的算法。该算法通过逐字节比较来确定目标序列是否存在,并返回其起始位置。讨论了算法的工作流程、边界条件处理及循环终止逻辑。

c语音1、仿照下面文件中的形式和方法编程 2、编写一个库,作用是读取数据,按照协议解包,输出数据协议中的数据段。在main函数中调用此库,实现从给出的需要解包的文件中读取解包数据,在命令行中输出。 文件中有大量的无效干扰数据,需要在之中找出有效数据并输出,有效数据即符合协议的数据,如果有多个有效数据,换行输出。 提交的程序包括:1、库 2、main函数,在main函数中使用此库 3、给出的需要解包的文件 (注意:程序中路径地址写相对地址,同时提交时不能改变文件路径,否则提交后无法打开文件) 3、其中协议为,低位在低字节,高位在高字节,即小端序: 帧头为0x60 ID为0x00 校验方法为8位简单求和校验和(8位LCR校验): 1)将数据分块,即按照8位计算。 对每个数据块中的字节求和,忽略8位以上的进位。 将求得的总和进行取反操作,即0变1,1变0, 再将取反后的数加一。 4)得到的值就是该数据块的校验和。 4、一种解包的方法为:在数据中扫描到帧头;判断ID是否正确;根据数据长度计算帧总长;计算校验位,如果校验位正确,就说明接受到完整有效的数据包,数据有效。 可以使用cmake同时编译多个源文件,也可以将main和库的.c文件写在同一文件,用注释区分好哪部分代码为库。 5、上层接口函数、下层接口函数和对象结构体成员自行设计,注意要将为window平台提供的函数解耦开,如fopen、fgetc、printf等。不需要完全严格按照下面文件中的范式,可以自行设计,实现分层解耦上下接口即可。 6、上层接口函数和下层接口函数设计参考: 第一种: 下层接口:读取地址函数:传入打开文件、获取文件指针的函数;读取大小函数:传入获取文件大小的函数;输出函数:传入封装好的printf;去初始化函数:传入关闭文件的函数。 上层接口:初始化函数:调用读取地址函数、读取大小函数、申请解包缓冲区内存,复制数据到解包缓冲区;去初始化函数:释放内存;解包输出函数:解包并输出。 第二种: 下层接口:输出函数:传入封装好的printf; 上层接口:初始化函数:申请解包缓冲区内存,初始化解包完成队列;去初始化函数:释放内存;读取加载缓冲区函数:传入需要解包的地址和大小,复制之中的数据到解包缓冲区;解包函数;解包并把有效数据存放在解包完成队列;输出函数:输出解包完成队列的数据
最新发布
10-11
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值