新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8位16位32位數(shù)據(jù)的拆分與合并程序

8位16位32位數(shù)據(jù)的拆分與合并程序

作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
拆分
//16位拆成兩個(gè)8位
u16 data16 = 0x1234;
u8 data8_H,data8_L;
data8_H = (u8)(data16 >> 8);
data8_L = (u8)data16;
32位拆成4個(gè)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位地址,強(qiáng)制轉(zhuǎn)換為8位地址
data8_1 = *((char *)pa+3);
data8_2 = *((char *)pa+2);
data8_3 = *((char *)pa+1);
data8_4 = *((char *)pa);
合并
2個(gè)8位合并成1個(gè)16位
u8 data8_H = 0x12;
u8 data8_L = 0x34;
u16 data16;
data16 = ((u16)data8_H << 8) | (u16)(data8_L));
4個(gè)8位合并成1個(gè)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);


關(guān)鍵詞: 數(shù)據(jù)拆分與合

評論


技術(shù)專區(qū)

關(guān)閉