推广 热搜: PLC  PLC编程  电子  自动  控制  LED  步进电机  机器人  AT89S51  控制器 

8位16位32位数据的拆分与合并程序

   日期:2018-05-30     浏览:100    评论:0    
核心提示:拆分//16位拆成两个8位u16 data16 = 0x1234;u8 data8_H,data8_L;data8_H =(u8)(data168);data8_L = (u8)data16;32位拆成4个8位方法一:u32 data32 = 0x12345678;
 拆分
 
//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);
 
data8_3 = (u8)(data32 >> 8);
 
data8_4 = (u8)data32;
 
方法二:
 
u32 data32 = 0x12345678;
 
u8 data8_1,data8_2,data8_3,data8_4;
 
u8 *pa;    //定义指针
 
pa = (u8 *)(&data32);        //将32位地址,强制转换为8位地址
 
data8_1 = *((char *)pa+3);
 
data8_2 = *((char *)pa+2);
 
 
data8_3 = *((char *)pa+1); 
 
data8_4 = *((char *)pa);
 
合并
 
2个8位合并成1个16位
 
u8 data8_H = 0x12;
 
u8 data8_L = 0x34;
 
u16 data16;
 
data16 = ((u16)data8_H << 8) | (u16)(data8_L));
 
4个8位合并成1个32位
 
u8 data8_1 = 0x12;
 
u8 data8_2 = 0x34;
 
u8 data8_3 = 0x56;
 
u8 data8_4 = 0x78;
 
u32 data32;
 
data32 = ((u32)data8_1 << 24) | ((u32)data8_2 << 16) | ((u32)data8_3 << 8) | ((u32)data8_4);
 
打赏
 
更多>同类 嵌入式
0相关评论

推荐图文
推荐 嵌入式
点击排行

网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报