前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言之字段类型应用的技巧

C语言之字段类型应用的技巧

作者头像
心跳包
发布2020-08-31 10:13:24
3610
发布2020-08-31 10:13:24
举报

在各种设备间的传输协议或者通信协议中,一般对数据的字段类型都各不相同,比如BCD码,BIN码,ASCII码等。下面接收几种字段类型定义的实例

1.BCD码

定义一个16位机器编码 2018041912345678

代码语言:javascript
复制
uint8_t		Dev[8] ;

一般两种存储方式:

大端模式:高位存在低位地址上

代码语言:javascript
复制
Dev[0]=0x20;
Dev[1]=0x18;
Dev[2]=0x04;
Dev[3]=0x19;
Dev[4]=0x12;
Dev[5]=0x34;
Dev[6]=0x56;
Dev[7]=0x78;

小端模式:低位存在高位地址上

代码语言:javascript
复制
Dev[0]=0x78;
Dev[1]=0x56;
Dev[2]=0x34;
Dev[3]=0x12;
Dev[4]=0x19;
Dev[5]=0x04;
Dev[6]=0x18;
Dev[7]=0x20;

2.BIN码

定义一个费用变量

代码语言:javascript
复制
uint16_t money;
代码语言:javascript
复制
uint8_t buf[128];

money=0x1234;

一般两种存储方式:

大端模式:高位存在低位地址上

代码语言:javascript
复制
buf[0]=0x12; buf[1]=0x34

小端模式:低位存在高位地址上

代码语言:javascript
复制
buf[0]=0x34; buf[1]=0x12

3.字符串

都是以ASCII码形式上传

设备号

代码语言:javascript
复制
const char temp[]="AY03B000017090003A";
uint8_t buf[],len;
len=sprintf((char *)buf, "%s",temp);  		

这是大端存储方式

如果小端存储方式还有进行数组掉头

代码语言:javascript
复制
uint8_t datbuf[100];
strchghead(datbuf,(uint8_t *)&buf,len)

void strchghead(unsigned char *dbuf,unsigned char *sbuf,unsigned int slen)
{
	unsigned int i;

	for(i=0;i<slen;i++)
	{
		dbuf[i] = sbuf[slen-i-1];
	}	
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档