【C練習】大小端轉換函數
實(shí)現一個(gè)大小端轉換函數。
32bit數據大小端轉化
大小端轉化的函數有很多,系統也提供了一些運行庫,如網(wǎng)絡(luò )庫中提供的:htons、htonl等函數,但需要引用對應的頭文件,打包也需要包含對應的庫文件。如果只是簡(jiǎn)單的用到大小端轉化,那么可以采用如下宏函數來(lái)實(shí)現。
可用于網(wǎng)絡(luò )的IP、Port大小端轉化,也可用于flash存儲、文件存儲時(shí)所需的大小端轉化。
// 4bytes、32bit數據大小端轉化 #define L2B32(Little) (((Little & 0xff) << 24) | (((Little >> 8) & 0xff) << 16) | (((Little >> 16) & 0xff) << 8) | ((Little >> 24) & 0xff))
————————————————
優(yōu)化一下
// 4bytes、32bit數據大小端轉化 #define L2B32(Little) (((Little & 0xff) << 24) | (((Little) & 0xff00) << 8) | (((Little) & 0xff0000) >> 8) | ((Little >> 24) & 0xff))16bit數據大小端轉化
// 2bytes、16bit數據大小端轉化 #define L2B16(Little) (((Little & 0xff) << 8) | ((Little >> 8) & 0xff))
原文鏈接:https://blog.csdn.net/u010333084/article/details/120738241
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。