取高,低字节

本文介绍了如何使用按位与运算来取高、低字节,并提供了16位和32位数据拆分及合并的方法,包括右移、左移以及指针操作。
摘要由CSDN通过智能技术生成

按位与&,按位与运算,当且仅当都为1的时候结果才为1,即1&1==1,1&0==0&1==0&0==0。

一个字节有8位,可以用原来的值和0x3f(就是0011 1111)按位与,即可得到后六位。前两位就是和0xc0按位与,然后右移六位。

多字节,取自己想要的字节,例如:

三字节数据:(FFFFFF&0x00ff00)/256,得到中位字节。高位字节:FFFFFF/65536或者右移16位。低位字节,&0x0000ff,左移16位。

send_msg.sendData[5] = Cs_stMainRly|Cs_stPreCharRly<<2|Cs_stAnnexPreRly<<4|Cs_stAnnexRly<<6;

将一个字节8个位按两个两个位填充

 

做个记录:

拆分

//16位拆成两个8位

u16 data16 = 0x1234;

u8 data8_H,data8_L;

data8_H = (u8)(data16 >> 8);

data8_L = (u8)data16;

32位拆成4个8位

方法一:

u32 data32 = 0x12345678;

u8 data8_1,data8_2,data8_3,data8_4;

data8_1 = (u8)(data32 >> 24);

data8_2 = (u8)(data32 >> 16);</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值