熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

"); //-->

博客專欄

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

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

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

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


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

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


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


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

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

優(yōu)化一下

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

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

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


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



關(guān)鍵詞: c

相關(guān)推薦

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

關(guān)閉