新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 8位16位32位數據的拆分與合并程序

        8位16位32位數據的拆分與合并程序

        作者: 時間:2016-12-01 來源:網絡 收藏
        拆分
        //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);


        關鍵詞: 數據拆分與合

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 贞丰县| 绥滨县| 岳池县| 抚顺县| 乐亭县| 靖边县| 万荣县| 台山市| 大新县| 石渠县| 改则县| 伊宁市| 万山特区| 乳源| 大同市| 循化| 定南县| 铁岭市| 松桃| 泸定县| 阜南县| 墨玉县| 清原| 神农架林区| 临颍县| 金寨县| 永春县| 正宁县| 乐业县| 奎屯市| 嘉祥县| 弥渡县| 遵化市| 溧水县| 长沙市| 凤冈县| 开江县| 乌鲁木齐市| 胶州市| 云和县| 永嘉县|