获取C语言数据提取

获取C语言数据提取

C语言共用体(C语言union用法)详解

前言:关于使用C语言中会遇到数据需要转换或者提取的情况。如果字节数目相同和规则符合自己的预设值,那还好。若是不符合需要自己自行去对照。主要针对于字符串数据的提取和4字节(8字节)也是类似来实现短数据的提取。

关键词:数据提前、规则。

一、短数据的提取

短数据提取的时候一般指在一个短4字节为例。

typedef union

{

struct

{

uint8_t u8BL1;

uint8_t u8BL2;

uint8_t u8BL3;

uint8_t u8BL4;

} inbytes;

struct

{

uint16_t u16L1;

uint16_t u16L2;

} inU16;

int32_t s32v;

uint32_t u32v;

} Format32bits_st;

可以通过定义Format32bits_st的结构,任意去得到bit0和bit1,bit2,bit3各个位置的数值。同样也可以方位2字节的高位和低位组合,分别实现正向转换和逆向转换。

二、长数据的提取

长数据的提取需要自行定义规范来实现数据的传输和解析。行业上称为数据帧,对数据帧进行调试称为帧解析。

处理大量的数据,需要进行封包和解包的处理,以及包校验。

通常用于通信数据帧解析上:

typedef struct

{

uint32_t FrameInfo; //传输数据的信息

uint32_t FrameOfs; //传输数据的偏移量

uint32_t FrameLen; //传输的数据帧长度

uint16_t crc; //crc校验

}FramePack_t;

传输后面通过解析和各种存储方式来进行

尊享推荐

365bet安卓中文客户端 茄子泡水要泡多久合适

茄子泡水要泡多久合适

📅 07-30 👑 370
365彩票网app安卓官方下载 桐乡市多举措提升
365bet安卓中文客户端 情侣之间,为什么喜欢互喊宝宝?
365彩票网app安卓官方下载 滚的解释

滚的解释

📅 07-13 👑 814