[程序源码] 这行代码什么意思呢?

[复制链接]
 楼主| niubohuaii 发表于 2020-5-23 15:18 | 显示全部楼层 |阅读模式
uint8_t cmd   uint16_t Data
Send_Data = ((((uint16_t)cmd & 15) << 12) | (Data & 4095));
diweo 发表于 2020-5-23 16:10 | 显示全部楼层
Send_Data是16位的“复合型”变量,它的高4位是‘命令’,低12位是‘数据’。
cmd&15 和 Data&4095 都是为了确保数据不要超范围。
因为‘命令’在高4位,所以需要 <<12
ayb_ice 发表于 2020-5-25 08:33 | 显示全部楼层
简单的组合而已,也可以说是打包
 楼主| niubohuaii 发表于 2020-5-28 08:17 | 显示全部楼层
diweo 发表于 2020-5-23 16:10
Send_Data是16位的“复合型”变量,它的高4位是‘命令’,低12位是‘数据’。
cmd&15 和 Data&4095 都是为了 ...

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

本版积分规则

23

主题

60

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部