博客專欄

        EEPW首頁 > 博客 > 【C練習】大小端轉換函數(shù)

        【C練習】大小端轉換函數(shù)

        發(fā)布人:電子禪石 時間:2023-02-22 來源:工程師 發(fā)布文章

        實現(xiàn)一個大小端轉換函數(shù)。


        32bit數(shù)據(jù)大小端轉化

        大小端轉化的函數(shù)有很多,系統(tǒng)也提供了一些運行庫,如網(wǎng)絡庫中提供的:htons、htonl等函數(shù),但需要引用對應的頭文件,打包也需要包含對應的庫文件。如果只是簡單的用到大小端轉化,那么可以采用如下宏函數(shù)來實現(xiàn)。


        可用于網(wǎng)絡的IP、Port大小端轉化,也可用于flash存儲、文件存儲時所需的大小端轉化。


        // 4bytes、32bit數(shù)據(jù)大小端轉化
        #define L2B32(Little) (((Little & 0xff) << 24) | (((Little >> 8) & 0xff) << 16) | (((Little >> 16) & 0xff) << 8) | ((Little >> 24) & 0xff))

        ————————————————

        優(yōu)化一下

        // 4bytes、32bit數(shù)據(jù)大小端轉化
        #define L2B32(Little) (((Little & 0xff) << 24) | (((Little) & 0xff00) << 8) | (((Little) & 0xff0000) >> 8) | ((Little >> 24) & 0xff))

        16bit數(shù)據(jù)大小端轉化
        // 2bytes、16bit數(shù)據(jù)大小端轉化
        #define L2B16(Little) (((Little & 0xff) << 8) | ((Little >> 8) & 0xff))

        原文鏈接:https://blog.csdn.net/u010333084/article/details/120738241


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



        關鍵詞: c

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 平乐县| 枝江市| 天气| 枣强县| 贺州市| 张家口市| 龙山县| 安平县| 乾安县| 泰州市| 贵定县| 楚雄市| 盈江县| 察雅县| 改则县| 南漳县| 镇平县| 宿州市| 宁武县| 循化| 闸北区| 新沂市| 台湾省| 六枝特区| 垦利县| 西丰县| 正安县| 温州市| 宣汉县| 吉水县| 罗城| 广昌县| 康定县| 安新县| 涡阳县| 安陆市| 罗田县| 衡阳市| 来凤县| 安阳县| 云梦县|