野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10739|回复: 3

c语言相关问题

[复制链接]
发表于 2017-6-14 16:00:25 | 显示全部楼层 |阅读模式

void main(void)
{
u8 WaterData[20];
u32 ZS;
ZS=99999;
DataProcess(WaterDat,ZS);
}

void DataProcess(u8 *WaterData,u32 ZS)
{
  WaterData[0]=(ZS&0x00ff0000)>>16;
  WaterData[1]=(ZS&0x0000ff00)>>8;
  WaterData[2]=(ZS&0x000000ff);
}

我现在通信实验发送端需要把整数99999转化为3个u8型字符存储下来。现在接收端需要把WaterData的逆过程写出来就不会了。如何根据WaterData[0]
,WaterData[1],WaterData[2]得到99999,希望大家可以帮帮我,非常感谢!
回复

使用道具 举报

发表于 2017-6-14 16:21:31 | 显示全部楼层
移位然后使用或操作变成一个数
回复 支持 反对

使用道具 举报

发表于 2017-6-14 16:51:28 | 显示全部楼层
ZS = (WaterData[0]<<16) + (WaterData[1]<<8) + WaterData[2]

回复 支持 反对

使用道具 举报

发表于 2017-6-14 19:49:13 | 显示全部楼层
试试i这个  ZS = (WaterData[0]<<16) |(WaterData[1]<<8) | WaterData[2]  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-16 05:46 , Processed in 0.054524 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表